2015-08-03 8 views
1

Я работаю с API Javascript Google Maps уже несколько недель. У меня возникли проблемы с доступом к свойствам geoJSON после того, как он был добавлен на карту и станет функцией карты.API Google Maps Javascript API явно обладает свойствами свойства GeoJSON

Например, предположим, что у меня есть этот пример GeoJSON

var geo = {"type":"FeatureCollection","features":[ 
       {"type":"Feature","id":"country","properties": 
        {"name":"ExampleCountry"},"geometry": {exampleGeometry}} 
      ]}; 

позволяет сказать, что я загружаю GeoJSON и хотите получить доступ к свойству идентификатору функции я только что добавили. Ни feature.id, ни feature.getProperty('id') не работают в этом случае. От отладки я узнал, что я могу получить доступ к свойству «id» через feature.F. Это решение работало нормально в течение нескольких недель, но по какой-то причине на прошлой неделе оно перестало работать. Вместо этого я должен использовать feature.K для доступа к свойству ID.

var mapOptions = { 
     center: { lat: -34.397, lng: 150.644}, 
     zoom: 8 
    }; 
    map = new google.maps.Map(document.getElementById('map-canvas'), {mapOptions}); 

map.data.loadGeoJson(geo); 
map.data.forEach(function(feature) { 
    //Used to Work, randomly stopped working last week (feature.F is undefined) 
    var id = feature.F; 
    //New Solution 
    var id = feature.K; 
}); 

Это не похоже на постоянное решение. Кто-нибудь знает, как это могло произойти?

+0

** Не используйте недокументированные свойства API, они могут и могут меняться при каждом выпуске **. Используйте документированные функции. – geocodezip

+0

Просьба предоставить [Минимальный, завершенный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip

+0

Что бы вы предложили вместо этого? – theBoarialist

ответ

3

Идентификатор объекта не является «свойством» по смыслу geoJSON.

Существует геттер-метод id в виде feature, использования:

feature.getId()//should return 'country' 

Если вы хотите, чтобы получить свойство (хранится в свойствах-члене) использует, например,

feature.getProperty('name')//should return 'ExampleCountry'