我希望用PHP创建一个数据库请求的GeoJson实例。 我正在使用此包来创建实例: http://jmikola.github.io/geojson/api/class-GeoJson.Feature.FeatureCollection.html
我创建了FeatureCollection但是我收到了错误
“错误:无效的LatLng对象:(未定义,未定义)” 即使我的坐标是浮点数。 但是,坐标不是来自数组[,],而是作为数组内的Javascript对象{,},这可能是问题所在? 其次,我认为我在设置CRS时遇到问题。我可以在QGIS中成功创建GeoJSON,它出现在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"
}
}
}
]
}
我希望有人可以提供帮助,因为我已经在论坛上拖网几个小时了!
干杯
答案 0 :(得分:0)
是的,坐标和属性必须是数组,而不是对象。因此,您可以在尝试创建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];
});
});