【问题标题】:Uncaught TypeError: Object[object Object] has no method 'x' at file y ErrorUncaught TypeError: Object[object Object] has no method 'x' at file y Error
【发布时间】:2013-10-18 13:32:30
【问题描述】:

我在 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 Console(4459): Uncaught TypeError: Object [object Object] has no method 'getLatLngs' at file:///android_asset/www/main.html :114

【问题讨论】:

    标签: javascript android leaflet


    【解决方案1】:

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

    【讨论】:

    • 感谢您的解决方案。它现在正在运行,但我不明白它如何在浏览器上运行而不会出现任何错误?
    • 看起来作者在某些版本中更改了方法。
    【解决方案2】:

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

    【讨论】:

    • 是的,当您批准错字时,我感到很困惑。
    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多