【问题标题】:Android - Getting waypoint coordinates from Google maps webviewAndroid - 从谷歌地图 webview 获取航点坐标
【发布时间】:2016-12-17 22:27:13
【问题描述】:

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

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

到目前为止,我还没有找到任何教程来说明如何从 webview 将多个航点添加到谷歌地图中。

【问题讨论】:

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


    【解决方案1】:

    您可以使用OnMapClickListener 启用点击侦听器。 当用户点击(点击)地图上的某处时,您将收到一个 onMapClick(LatLng) 事件,指示用户点击的地图上的位置

    现在由您来存储事件返回的 LatLng 值。 这是来自 Google sample 的 sn-p:

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

    【讨论】:

    • 谢谢,如果我将使用 GoogleMaps API for android,您的回答是正确的。但我的目标是在 webview 中使用谷歌地图。类似于link 的东西。通过向地图添加航点来创建自定义路线。
    • 你的 Android 标签让我很困惑,好吧,我会给你做一个 WebView 的 Javascript 示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    相关资源
    最近更新 更多