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 に答える