未捕获的类型错误:对象[对象对象]在文件 y 错误中没有方法“x”

Uncaught TypeError: Object[object Object] has no method 'x' at file y Error

本文关键字:对象 错误 有方法 文件 类型      更新时间:2023-09-26

我在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): 未捕获的类型错误:对象 [对象对象] 在 file:///android_asset/www/main.html:114 没有方法"getLatLngs"

这是一个

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

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