2017-04-08 15 views
0

設定方法Google Map's feature'sid geojsonから?geojsonからGoogleマップの機能IDを設定するにはどうすればよいですか?

idは、getId()機能によって返されるものです。

idプロパティのプロパティに存在するが、次のコードは、(プリントをundefined)動作しない:

var uluru = {lat: -25.363, lng: 131.044}; 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 4, 
    center: uluru 
    }); 
    var data = { 
    "type": "Feature", 
    "geometry": { 
     "type": "Point", 
     "coordinates": [131.044, -25.363] 
    }, 
    "properties": { 
     "Id": 12 
    } 
    }; 
    map.data.addGeoJson(data); 
    map.data.forEach(function(feature){ 
    console.log("Id from Google's feature: " + feature.getId()); 
    }); 

フィドル:https://jsfiddle.net/dimskraft/hj2t5je3/5/

UDPATE

Iは

var data = { 
    "type": "Feature", 
    "id": 13, 
    "geometry": { 
     "type": "Point", 
     "coordinates": [131.044, -25.363] 
    }, 
を書き込むことができます

これは間違ったGeojsonではありませんか?

答えて

2

GeoJSONのどのプロパティをidとして使用するかを定義するaddGeoJson()メソッドに2番目のパラメータを渡す必要があります。

2番目のパラメータはData.GeoJsonOptionsだから変更がされる

https://developers.google.com/maps/documentation/javascript/reference#Data.GeoJsonOptions

オブジェクトです:

map.data.addGeoJson(data, { 
    idPropertyName: "Id" 
}); 

コードが

function initMap() { 
 
    var uluru = {lat: -25.363, lng: 131.044}; 
 
    var map = new google.maps.Map(document.getElementById('map'), { 
 
    zoom: 4, 
 
    center: uluru 
 
    }); 
 
    var data = { 
 
    "type": "Feature", 
 
    "geometry": { 
 
     "type": "Point", 
 
     "coordinates": [131.044, -25.363] 
 
    }, 
 
    "properties": { 
 
     "Id": 12 
 
    } 
 
    }; 
 
    map.data.addGeoJson(data, { 
 
    idPropertyName: "Id" 
 
    }); 
 
    
 
    map.data.forEach(function(feature){ 
 
    \t console.log("Id from Google's feature: " + feature.getId()); 
 
    }); 
 
}
#map { 
 
    height: 400px; 
 
    width: 100%; 
 
}
<h3>My Google Maps Demo</h3> 
 
<div id="map"></div> 
 
<!-- Replace the value of the key parameter with your own API key. --> 
 
<script async defer 
 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDztlrk_3CnzGHo7CFvLFqE_2bUKEq1JEU&callback=initMap"> 
 
</script>
スニペット

+0

これに関するGoogleのドキュメントは明確ではありませんが、.loadGeoJsonメソッドを使用するときにオプションを追加することもできます – Mackija

関連する問題