GeoJSON: разрешены ли свойства в FeatureCollection? - PullRequest
7 голосов
/ 11 января 2012

Я не смог найти соответствующую информацию в спецификации: http://geojson.org/geojson-spec.html

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

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

Ответы [ 2 ]

8 голосов
/ 11 января 2012

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

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

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

1 голос
/ 04 апреля 2012

Перейти к 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]}
        }
    ]
}
...