我在谷歌地图中的两点之间划了一条线。现在我想在该行中添加特定距离的标记
[![mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions marker = new MarkerOptions().position(
new LatLng(latLng.latitude, latLng.longitude)).title("New Marker");
mMap.addMarker(marker).setDraggable(true);
mTempCollection.add(latLng);
mPolylineOptions.getPoints().clear();
mPolylineOptions.addAll(mTempCollection);
LatLngBounds latLngBounds = getPolygonCenterPoint(mTempCollection);
double distance = SphericalUtil.computeDistanceBetween(latLngBounds.southwest, latLngBounds.northeast);
Log.d(TAG, "distance: " + distance);
int plotmarkers = (int)(distance / 10);
mPolylineOptions.color(Color.GREEN);
mMap.addMarker(new MarkerOptions()
.position(latLngBounds.getCenter()));
mMap.addPolyline(mPolylineOptions);
}
});
我发现这个链接在javascript可以为Android做? How to add markers on Google Maps polylines based on distance along the line?
如果您有两个标记,并且想要距离该行的起点一定距离放置标记,则可以使用SphericalUtil.interpolate来完成该任务。
double distance_between_points = SphericalUtil.computeDistanceBetween(startPointLoc,endPointLoc);
//假设您希望新标记距离起点远离
LatLng newMarkerLoc = SphericalUtil.interpolate(startPointLoc,endPointLoc,(float)DISTNACE / distnace_between_points);
不是这里,你的距离可以是1公里,2公里,或任何你想要的(基于你提到的帖子)