0
我正在使用Google Fusion Tables API v1請求以JSON格式加載到融合表中的點kml。我用這個請求:Google Fusion Tables API v1和GeoJSON到Google Maps Utility
<script src="https://www.googleapis.com/fusiontables/v1/query?sql=SELECT * FROM 1CNJWjLDYgBkJGZVslJ67Fak4DyqadEFIabzQ60&callback=dataHandler&key=AIzaSyKBzv-rs32Zat-8fDZuWwOXo7hCtpBR78"></script>
回調函數使用GeoJSON to Google Maps Utility解析從請求標記。幾何數據是在列IDX 2命名爲「幾何」:
function dataHandler(results) {
var rows = results['rows'];
for (var i in rows){
var geometries = rows[i][2]['geometry'];
//alert(geometries.coordinates)
if (geometries) {
var options = {
"icon": "http://labs.google.com/ridefinder/images/mm_20_red.png"
};
var overlay = new GeoJSON(geometries, options);
if (overlay.error){
alert("error in GeoJSON")
}else{
alert(map) // return undefined
overlay.setMap(map); //not working
}
}else {
alert('No geometry column')
}
}
}
沒有在JSON或GeoJSON的工具創建的覆蓋沒有錯誤,但在谷歌地圖VAR「地圖」的功能是不明確的,甚至如果它的全球定義。那就是爲什麼overlay.setMap(地圖)不起作用。我想這個回調函數在var map被定義之前被調用。我該如何解決這個問題?
你有一個jsfiddle或鏈接出現問題嗎? – geocodezip 2013-03-13 02:23:29
我創建了一個jsfiddle,但我不知道如何使用此工具顯示地圖。 http://jsfiddle.net/4u2yu/1/ – 2013-03-13 13:17:51
我設法通過在覆蓋數組中推送覆蓋而不是在回調函數中執行overlay.setMap(map)來實現它。然後,我在initialize()函數中的每個疊加覆蓋圖上做了setMap(map) – 2013-03-13 18:36:10