我正在创建一个Android应用,它会将Google地图加载到webview。用户可以通过在地图上单击(设置路标)来创建自己的路线。 Google最多支持8个航点。
我的问题是,如何处理"点击事件"从地图(设置航路点)并获得此航路点的[ lat,lon ]?目标是将点击的航点存储在数组中。
到目前为止,我没有找到任何教程,显示如何从webview向谷歌地图中添加多个航点。
答案 0 :(得分:1)
您可以使用OnMapClickListener启用点击监听器。 当用户点击(点击)地图上的某个位置时,您将收到一个onMapClick(LatLng)事件,该事件指示用户点击的地图上的位置
现在由您来存储事件已返回的LatLng值。 以下是此Google sample的摘录:
@Override
public void onMapReady(GoogleMap map) {
mMap = map;
mMap.setOnMapClickListener(this);
mMap.setOnMapLongClickListener(this);
mMap.setOnCameraIdleListener(this);
}
//'point' holds the value of LatLng coordinates
@Override
public void onMapClick(LatLng point) {
mTapTextView.setText("tapped, point=" + point);
}
这是Javascript中的版本
function initMap() {
var myLatlng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatlng
});
map.addListener('click', function(e) {
console.log("clicked at " + e.latLng);
});
}
在这个简单的fiddle demo中,如果您单击地图并检查控制台日志,您将看到事件发生的确切坐标。所以回到你的情况,如果你点击一个航路点,你就会知道它的位置。