我一直忙于在我的应用程序中寻找如何在地图上的一个 (GPS) 点和一个标记之间画一条线。有人可以吗?



我有不同的文件为我的地理位置和标记:D我想做的是画一条线…我的位置(使用gps)到我已经在应用程序中输入的标记。如果我点击一个标记,我选择将有线:)谢谢你,我是新手,请帮助我…

//this is my locationHelper
public static GoogleMap getStoreList(GoogleMap googleMap){
        // create marker
        MarkerOptions seveneleven = new MarkerOptions().position(new LatLng(14.616737, 120.982916)).title("7-Eleven");
        googleMap.addMarker(seveneleven);
        MarkerOptions sevenelevenRecto = new MarkerOptions().position(new LatLng(14.601643, 120.988580)).title("7-Eleven Recto");
        googleMap.addMarker(sevenelevenRecto);
        MarkerOptions newestGroceryEnColdStore = new MarkerOptions().position(new LatLng(14.597770, 120.983253)).title("Newest Grocery and Cold Store");
        googleMap.addMarker(newestGroceryEnColdStore);
        MarkerOptions savemoreStaCruz = new MarkerOptions().position(new LatLng(14.601845, 120.981116)).title("Savemore Sta Cruz");
        googleMap.addMarker(savemoreStaCruz);
        MarkerOptions sevenTondo = new MarkerOptions().position(new LatLng(14.63059, 120.97355 )).title("7-Eleven (Pampanga St, Tondo, Manila)");
        googleMap.addMarker(sevenTondo);
        MarkerOptions sevenTayuman = new MarkerOptions().position(new LatLng(14.65086, 120.98248 )).title("7-Eleven (Tayuman Road, Sta. Cruz, Manila)");
        googleMap.addMarker(sevenTayuman);
        MarkerOptions miniStopm = new MarkerOptions().position(new LatLng(14.64239, 120.98694 )).title("Ministop (Sampaloc, Manila))");
        googleMap.addMarker(miniStopm);
        MarkerOptions miniStopmm = new MarkerOptions().position(new LatLng(14.63657, 120.98505 )).title("Vosges Convenience Store (G/F Old Free Press Bldg Soler St, Quiapo, Manila))");
        googleMap.addMarker(miniStopmm);
        MarkerOptions miniStopmp = new MarkerOptions().position(new LatLng(14.60555, 120.98853 )).title("Mini Stop (Padre Campa St. Sampaloc, Manila)");
        googleMap.addMarker(miniStopmp);
        MarkerOptions savemoreStacruz = new MarkerOptions().position(new LatLng(14.57734, 120.99197 )).title("Savemore (Sta. Cruz, Manila)");
        googleMap.addMarker(savemoreStacruz);
        MarkerOptions super8recto = new MarkerOptions().position(new LatLng(14.601971, 120.987858)).title("Super 8 Recto");
        googleMap.addMarker(super8recto);
        return googleMap;
    }

//this is my another file which is my geolocation in my mainActivity.

如果您已经有了源和目标的latong,那么您可以使用下面的代码。

 private List<LatLng> decodePoly(String encoded) {
List<LatLng> poly = new ArrayList<LatLng>();
int index = 0, len = encoded.length();
int lat = 0, lng = 0;
while (index < len) {
    int b, shift = 0, result = 0;
    do {
        b = encoded.charAt(index++) - 63;
        result |= (b & 0x1f) << shift;
        shift += 5;
    } while (b >= 0x20);
    int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
    lat += dlat;
    shift = 0;
    result = 0;
    do {
        b = encoded.charAt(index++) - 63;
        result |= (b & 0x1f) << shift;
        shift += 5;
    } while (b >= 0x20);
    int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
    lng += dlng;
    LatLng p = new LatLng( (((double) lat / 1E5)),
             (((double) lng / 1E5) ));
    poly.add(p);
}
  return poly;
}

详情请参阅此连结

            googleMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
                @Override
                public void onMyLocationChange(Location arg0) {
                    googleMap.addMarker(new MarkerOptions().position(new LatLng(arg0.getLatitude(), arg0.getLongitude())).title("Your Location!"));
                    CameraPosition cameraPosition = new CameraPosition.Builder()
                            .target(new LatLng(arg0.getLatitude(), arg0.getLongitude()))      // Sets the center of the map to location user
                            .zoom(17)                   // Sets the zoom
                            //.bearing(90)                // Sets the orientation of the camera to east
                            //.tilt(40)                   // Sets the tilt of the camera to 30 degrees
                            .build();                   // Creates a CameraPosition from the builder
                    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
                }
            });
        }
    }
}
@Override
protected void onResume() {
    super.onResume();
    initilizeMap();
}

}

相关内容

最新更新