我在Wordpress中使用自定义的post-type插件。我添加了地理位置图扩展,以便在后端,客户端可以输入物理地址,它将输出地理坐标。这可以正常工作,直到我使用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'); ?>]},
但是,输出的坐标是相反顺序,而不是它们需要的功能。它们对于我动态使用它们的其他区域是正确的,但如果可能的话,需要知道如何交换它们在这里输出的顺序。
有什么想法吗?
答案 0 :(得分:2)
根据GeoJSON Format Specification:
点坐标为x,y顺序(东经,北向为投影坐标,经度,纬度为地理坐标)
这意味着您希望您的坐标与您的坐标切换。
"geometry": { "type": "Point", "coordinates": [32.7423499, -97.325741]}
答案 1 :(得分: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; ?>]}
它有效!