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