【发布时间】:2014-02-14 08:21:54
【问题描述】:
我在我的地图 api 中加载一个 kml 文件,并且我在点击事件时使用此代码。
google.maps.event.addListener(ctaLayer, 'click', function (kmlEvent) {
setSelection(kmlEvent.featureData.name);
//alert(kmlEvent.featureData.name);
//showInContentWindow(text);
});
这就是调用函数
function setSelection(shape) {
clearSelection();
selectedShape = shape;
shape.setEditable(true);
}
不,我有 2 个问题,KML 文件给了我 2 个多边形,每个多边形都有不同的名称。
Tester 和 jahoor。但是当我点击jahoor 时,它总是给我多边形Tester。
为什么我不能选择彼此不同的?
第二个问题是,我无法再次将 kml 中的多边形设置为可编辑。
它给了我错误:Uncaught TypeError: Object Tester has no method 'setEditable'
有人知道我做错了什么吗?可以在堆栈或来自 google api 的文档中找到它
kml 文件片段:
<Placemark id="Tester">
<styleUrl>#transYellowPolyActive</styleUrl>
<name>Tester</name>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<tessellate>0</tessellate>
<coordinates> 6.30889892578125,53.28820543193896 6.29791259765625,53.28410053532493 6.233367919921875,53.21096737507053 6.5093994140625,53.19698389904798 6.50390625,53.27096221595853
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark id="jahoor">
<styleUrl>#transYellowPolyActive</styleUrl>
<name>jahoor</name>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<tessellate>0</tessellate>
<coordinates> 6.168479919433594,53.30318495818702 6.143760681152344,53.29579845109269 6.138267517089844,53.27281003615208 6.195259094238281,53.2707568976735 6.2010955810546875,53.29867113343524
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
【问题讨论】:
-
错误
Object Tester has no method 'setEditable'可能是因为您在没有使用new的情况下调用了Tester 构造函数。另一个听起来像闭包问题但没有代码很难说。 -
你能解释一下你的意思吗?请
-
new: 你的对象 Tester 显然已经定义好了。如果不是,您会收到有关未定义对象的错误。它似乎没有正确初始化。例如,原因可能是您没有调用new name.pkg.Tester(),而是调用了name.pgk.Tester()。这只是一个猜测。 -
它给了我一个新的错误:
Uncaught TypeError: string is not a function -
你能显示相关代码吗?没有它就很难提供帮助。
标签: google-maps-api-3 kml polygon