0

我在 Android 中使用 LeafLet,我试图在警报中显示编辑后的坐标。

<head>


 <link rel="stylesheet" href="leaflet.css" />
 <link rel="stylesheet" href="leaflet.draw.css" />
 <script src="leaflet.js" type="text/javascript"></script>
 <script src="leaflet.draw.js" type="text/javascript"></script>
 <script src="tmp.js" type="text/javascript"></script>
 <script src="http://maps.google.com/maps/api/js?v=3.2&sensor=false"></script>
 <script src="http://matchingnotes.com/javascripts/leaflet-google.js"></script>
 <script src="webintent.js" type="text/javascript"></script>
 <script src="json2.js" type="text/javascript"></script>

 <style type="text/css">
 #map { height: 100%;
 width: 100%; }
</style>

</head>

这是我的功能

map.on('draw:edited', function (e) {
    // Update db to save latest changes.
    var layers = e.layers;

    layers.eachLayer(function(layer) {
       alert(layer.getLatLngs().toString());  //this is 114. command line
    });
});

当我在网络浏览器上尝试这个时,它运行良好。但是当我在 Android 中尝试这个时,我收到了这个错误。

有什么建议吗?

10-18 16:22:05.240:E/Web 控制台(4459):未捕获的类型错误:对象 [对象对象] 在文件:///android_asset/www/main.html:114 处没有方法“getLatLngs”

4

2 回答 2

0

这是一个错字。应该是alert(layer.getLatLng().toString());

于 2013-10-18T13:39:20.157 回答
0

安迪感谢您的解决方案,但这不是错字。
如果您使用Markers,则必须使用getLatLng()函数,因为 Marker 只有一个 LatLng。
如果您使用超过1 个点,如多边形、折线,则必须使用getLatLngs()函数。我正在使用 Marker,我试图将 getLatLngs() 与 Marker 一起使用。这就是问题所在

于 2013-10-18T15:29:16.937 回答