2

我正在使用带有 Wordpress 的自定义帖子类型插件。我添加了 Geo Location Map 扩展,以便在后端,客户端可以输入物理地址并输出地理坐标。这工作正常,直到我将它与 geoJson 函数一起使用来放置标记。

下面是放置标记的脚本。

var geoJson = [{
type: 'Feature',
"geometry": { "type": "Point", "coordinates": [-97.325741, 32.7423499]},
"properties": {
    "image": "",
    "url": "http://google.com",
    "marker-symbol": "commercial",
    "marker-color": "#ff793d",
    "marker-size": "large"
}
}];

自定义字段应如下所示:

"geometry": { "type": "Point", "coordinates": [<php? the_field('map_address'); ?>]},

但是,输出的坐标与此函数所需的顺序相反。它们对于我动态使用它们的其他区域是正确的,但如果可能的话,需要知道如何交换它们在此处输出的顺序。

有任何想法吗?

4

2 回答 2

2

根据GeoJSON 格式规范

点坐标按 x、y 顺序排列(投影坐标为东、北,地理坐标为经度、纬度)

这意味着您希望您的坐标与您拥有的坐标不同。

"geometry": { "type": "Point", "coordinates": [32.7423499, -97.325741]}
于 2013-07-23T18:43:53.940 回答
0

仅供参考,我使用以下脚本修复了它。geoJson 规范确实说坐标应该在任何地方格式化为 X,Y 但这似乎不是单个标记的“几何”坐标的情况。当坐标为 Y,X 时,我的所有标记都显示在它们应该显示的位置(仅适用于标记坐标 - setView 坐标仍为 X,Y)。

<?php
$address = get_field('map_address');
$x = strtok($address, ',');
$y = strstr($address, ",");
$y = str_replace(",", "", $y);
?>

然后调用坐标,

"geometry": { "type": "Point", "coordinates": [<?php echo $y.",".$x; ?>]}

它有效!

于 2013-07-24T15:01:38.523 回答