2012-01-11 5 views
4

я не мог найти любую соответствующую информацию в спецификации: http://geojson.org/geojson-spec.htmlGeoJSON: Разрешены ли свойства FeatureCollection?

ли это разрешено иметь properties ключ в FeatureCollection? Или это возможно только для функций?

Если возможно, как я могу получить доступ к свойствам в пределах openlayers? Спасибо заранее.

ответ

6

Спецификация не запрещает это явно, но коллекции функций не имеют свойств. GeoJSON особое_разрешение только упоминает следующие ключи FeatureCollection:

  • type - должен быть `FeatureCollection
  • features - массив Feaures
  • bbox - ограничивающий прямоугольник всей коллекции художественного

В I см. код OpenLayers, properties обрабатывается только для экземпляров объектов, а не для коллекции функций.

2

Switch to Leaflet проще, и он принимает GeoJSON с FeatureCollection. Вы можете получить атрибуты из всплывающего окна, когда вы нажмете объекты.

Однако, Openlayers также имеют доступ к FeatureCollection. Мобильный (jQuery Mobile) пример для Openlayers продемонстрировал доступ к свойствам.

http://openlayers.org/dev/examples/mobile-jq.html#mappage

Нажмите черные значки, и вы увидите всплывающее окно формы с этими атрибутами.

Это часть GeoJSON в мобильном примере.

{ 
    "type": "FeatureCollection", 
    "features": [ 
     { "type": "Feature", 
      "geometry": {"type": "Point","coordinates": [1332700, 7906300]}, 
      "properties": {"Name": "Igor Tihonov","Country":"Sweden", "City":"Gothenburg"} 
     }, 
     { "type": "Feature", 
      "geometry": {"type": "Point","coordinates": [790300, 6573900]}, 
      "properties": {"Name": "Marc Jansen","Country":"Germany", "City":"Bonn"} 
     }, 
     { "type": "Feature", 
      "geometry": {"type": "Point","coordinates": [568600, 6817300]}, 
      "properties": {"Name": "Bart van den Eijnden","Country":"Netherlands", "City":"Utrecht"} 
     }, 
     { "type": "Feature", 
      "geometry": {"type": "Point","coordinates": [-7909900, 5215100]} 
     } 
    ] 
}