0
我试图建立一个系统,加载KMZ文件并使用谷歌地图显示它,然后测试用户是否点击了由KMZ。我通过这些论坛和网络搜索了所有内容,但没有找到可行的解决方案。谷歌地图api和GeoXML3试图使用contains问题
我没有问题加载和阅读KMZ文件和多边形在地图上完美显示。但是,当我尝试使用由geoXML3返回的多边形数据来测试位置是否在边界内时,根据我的处理方式,我会得到各种各样的错误。 我在本地加载geoxml3.js文件并为KMZ文件解析器,正如我所说的那样工作正常,所以我不会包含所有这些。 KMZ文件是服务器本地的,并且读取正常。
这是我有:
<script>
var zone;
var polzone;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: {lat: 0, lng: 0}
});
zone = new geoXML3.parser({map: map});
zone.parse('test.kmz');
}
function testlimit(){
polzone = zone.docs[0].gpolygons[0];
console.log(google.maps.geometry.poly.containsLocation(new google.maps.LatLng("0", "0"), polzone));
}
</script>
正如你可以看到我用硬编码的长和lattitude值只是测试和它给我的错误“遗漏的类型错误:b.get不是一个函数”。 单击按钮时会触发testlimit函数。
我最初有更多的代码,但因为它不工作,这是我最终结束了。任何帮助,将不胜感激。
你可以创建一个小提琴展示您的问题? – xkcd149
好吧,我试图做到这一点,我只是不知道如何加载kmz文件到那里。 – user1770717
看起来问题是专门从geoXML对象中调用多边形。人们应该如何从geoXML3分析器创建的对象中获取Google地图多边形。对不起,如果这是一个愚蠢的问题,但我以前从未使用它,并且很少有关于它如何工作的文档。 – user1770717