Сбор данных листовки: LatLong не определен

#leaflet

#листовка

Вопрос:

Я хочу создать экземпляр GeoJSON из запроса к базе данных с помощью PHP. Я использую этот пакет для создания экземпляра: http://jmikola.github.io/geojson/api/class-GeoJson .Функция.FeatureCollection.html

Я создал FeatureCollection, но я получаю сообщение об ошибке

«Ошибка: недопустимый объект LatLng: (неопределенный, неопределенный)», хотя мои координаты являются плавающими. Однако координаты поступают не через массив [,], а в виде объектов Javascript {,}, которые находятся внутри массива, и, возможно, в этом проблема? Во-вторых, я думаю, у меня возникли проблемы с настройкой CRS. Я могу успешно создать GeoJSON в QGIS, и он появляется в верхней части FeatureCollection, но с этим пакетом в PHP он появляется ближе к концу.

Моя коллекция функций выглядит следующим образом:

 {
"type": "FeatureCollection",
    "features": [
        {
        "type": "Feature",
        "geometry": {
            "type": "MultiPoint",
            "coordinates": [
                 {...},
                 {...}
            ]
        },
        "properties": [
            {...},
            {...}
        ],
        "id": {
            "type": "name",
            "properties": {
                "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
                }
            }
        }
    ]
}
  

Я надеюсь, что кто-нибудь сможет помочь, потому что я часами просматривал форумы!

Приветствия

Ответ №1:

Да, координаты и свойства должны быть массивами, а не объектами. Поэтому вы можете преобразовать их, прежде чем пытаться создать свой GeoJSON, следующим образом:

 //loop through all your features
featureCollection.features.forEach(function(feature) {
    // first the coordinates in the geometry property
    feature.geometry.coordinates.forEach(function(coord, index) {
        feature.geometry.coordinates[index] = [coord.lat, coord.lng];
    });

    // then those in the properties
    feature.properties.forEach(function(prop, index) {
        feature.properties[index] = [prop.lat, prop.lng];
    });
});
  

Комментарии:

1. Спасибо, добрый сэр!