我正在尝试设置一个加载 KMZ 文件并使用谷歌地图显示它的系统,然后测试用户是否在 KMZ 创建的多边形范围内单击。我已经搜索了所有这些论坛和网络,但没有找到有效的解决方案。
我在加载和读取 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>
如您所见,我仅使用硬编码的长纬度值进行测试,它给了我错误“未捕获的 TypeError:b.get 不是函数”。单击按钮时会触发 testlimit 函数。
我最初有更多代码,但由于它不起作用,这就是我结束的地方。任何帮助,将不胜感激。