自定义地图标记在 android 中放大或缩小地图时更改其位置
Custom map marker change its postition when zoom in or out the map in android
我制作了一个自定义标记,它在加载地图时完美无缺,但我的问题是当我放大或缩小地图时,标记改变了它的位置,而且当我点击标记信息时 window出现在另一个位置(不在其顶部),我的代码如下,我找不到解决方案或想法我做错了什么,请救救我。
代码
private void plotMarkers(ArrayList<MyMarker> markers) {
if (markers.size() > 0) {
for (MyMarker myMarker : markers) {
System.out.println("================rounded bitmaps==========="
+ roundedBitmaps.toString());
// Create user marker with custom icon and other options
MarkerOptions markerOption = new MarkerOptions()
.position(new LatLng(myMarker.getmLatitude(), myMarker
.getmLongitude()));
markerOption.icon(BitmapDescriptorFactory.fromBitmap(myMarker
.getImgURL()));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(myMarker.getmLatitude(), myMarker
.getmLongitude())).zoom(12).build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
Marker currentMarker = mMap.addMarker(markerOption);
mMarkersHashMap.put(currentMarker, myMarker);
mMap.setInfoWindowAdapter(new MarkerInfoWindowAdapter());
}
}
}
自定义标记的工作方式与标准标记不同。您遇到的问题是一个已知问题,处理此问题的最佳方法如下:
- 确保自定义标记的图像是对称的并且 id 与锚点完全对齐。
- 信息window也应该类似地在标记的中心对称对齐,否则会很难看。请注意,自定义标记图标通常需要 different anchor。对于信息 window,使用自定义信息 window 布局(带有自定义背景)使其与标记正确对齐。
我制作了一个自定义标记,它在加载地图时完美无缺,但我的问题是当我放大或缩小地图时,标记改变了它的位置,而且当我点击标记信息时 window出现在另一个位置(不在其顶部),我的代码如下,我找不到解决方案或想法我做错了什么,请救救我。 代码
private void plotMarkers(ArrayList<MyMarker> markers) {
if (markers.size() > 0) {
for (MyMarker myMarker : markers) {
System.out.println("================rounded bitmaps==========="
+ roundedBitmaps.toString());
// Create user marker with custom icon and other options
MarkerOptions markerOption = new MarkerOptions()
.position(new LatLng(myMarker.getmLatitude(), myMarker
.getmLongitude()));
markerOption.icon(BitmapDescriptorFactory.fromBitmap(myMarker
.getImgURL()));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(myMarker.getmLatitude(), myMarker
.getmLongitude())).zoom(12).build();
mMap.animateCamera(CameraUpdateFactory
.newCameraPosition(cameraPosition));
Marker currentMarker = mMap.addMarker(markerOption);
mMarkersHashMap.put(currentMarker, myMarker);
mMap.setInfoWindowAdapter(new MarkerInfoWindowAdapter());
}
}
}
自定义标记的工作方式与标准标记不同。您遇到的问题是一个已知问题,处理此问题的最佳方法如下:
- 确保自定义标记的图像是对称的并且 id 与锚点完全对齐。
- 信息window也应该类似地在标记的中心对称对齐,否则会很难看。请注意,自定义标记图标通常需要 different anchor。对于信息 window,使用自定义信息 window 布局(带有自定义背景)使其与标记正确对齐。