当您长时间点击可拖动标记时,标记会向上移动并允许您移动它。 我的问题是我无法看到标记的底部,因为我的手指位于其上方。我正在尝试准确定位标记图标的底部中间。
一个简单的解决方法是控制拖动时标记向上移动的偏移量。我会使这个偏移足够大,这样你就可以看到手指上方标记的底部。
我尝试在dragstart中手动预先偏移标记,但是一旦开始移动标记,它就会立即返回原始偏移。
答案 0 :(得分:0)
目前无法实现。偏移量在API中进行了硬编码。
我建议在gmaps-api-issues上发布功能请求。
答案 1 :(得分:0)
我已经找到了解决此问题的方法,至少对我来说,它像是一种魅力。想法:将标记图标的锚点设置为图标下方所需的毫米/英寸。这会将图标上移到首选位置。但是这样做时,您必须将标记的纬度偏移适当的度数。我用来计算毫米级数的公式适用于地图的所有位置和缩放级别,但是常数(80)取决于您使用的图标的大小,当然取决于锚点,并且最可能取决于分辨率设备的对我来说,这段代码可以在我的Galaxy S9上完成工作:
mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override public void onMarkerDragStart(Marker marker) {
marker.setAnchor(0.5f, 1.4f);
VisibleRegion vR = mMap.getProjection().getVisibleRegion();
View v = findViewById(R.id.map);
offset = 80*(vR.latLngBounds.northeast.latitude - vR.latLngBounds.southwest.latitude)/v.getLayoutParams().height;
}
@Override public void onMarkerDrag(Marker marker) {
// Your code. Replace all 'marker.getPosition()' by 'new LatLng(marker.getPosition().latitude + offset, marker.getPosition().longitude)'
}
@Override public void onMarkerDragEnd(Marker marker) {
// Your code.
}
});