Android - 从Google地图webview获取航点坐标

时间:2016-08-11 09:09:48

标签: android google-maps google-maps-api-3 webview google-maps-android-api-2

我正在创建一个Android应用,它会将Google地图加载到webview。用户可以通过在地图上单击(设置路标)来创建自己的路线。 Google最多支持8个航点。

我的问题是,如何处理"点击事件"从地图(设置航路点)并获得此航路点的[ lat,lon ]?目标是将点击的航点存储在数组中。

到目前为止,我没有找到任何教程,显示如何从webview向谷歌地图中添加多个航点。

1 个答案:

答案 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中,如果您单击地图并检查控制台日志,您将看到事件发生的确切坐标。所以回到你的情况,如果你点击一个航路点,你就会知道它的位置。