0

Google Maps API を使用して地図上に円を生成し、いくつかの地理データをいじっています。簡単。データは MySQL データベースから取得されており、読み込み時に PHP を使用してこれをスクリプトに出力しています。JavaScript オブジェクトの構造は次のようになります。

var circles = { 
    1 : { center : new google.maps.LatLng(55,-1), size: 1000},
    2 : { center : new google.maps.LatLng(56,-2), size: 2000}
};

ゴール

円は恣意的なものではなく、それらが表す場所には、フィルター処理したい関連する特性があります。ドロップダウン ボックスで、マップに表示される円のサイズ範囲を選択できるとします。変更すると、マップはこの選択に基づいて円を再読み込みします。

以下に示すように、データを生成する PHP スクリプトを作成し、AJAX (jQuery) を使用して応答を circles 変数に割り当てようとしました。私がそれをクラックしたとき、アイデアは、スクリプトがドロップダウンの選択に基づいて異なるデータを生成するということです。

var circles = {};
var circles = $.ajax({
    url: "data.php",
    async: false
}).responseText;

PHP (data.php) スクリプトが生成するテキストは次のとおりです。

1 : { センター : 新しい google.maps.LatLng(55,-1), サイズ: 1000},2 : { センター : 新しい google.maps.LatLng(56,-2), サイズ: 2000}

ただし、これは機能しません。手順が間違っているか、間違った方向に進んでいる可能性がありますが、ガイダンスは歓迎されます。

前もって感謝します!

4

1 に答える 1

0

@davidkonrad のおかげで、私は彼の答えを機能させることができませんでした。問題は、new google.maps.LatLng(55,-1)オブジェクトを JSON として転送することでした。

私の解決策は、PHP スクリプトによって生成された JSON で緯度変数と経度変数を分割することでした。

JSON 構造:

{"1" : { "lat" : 55, "lng" : -1, "size": 10000}}

次に、オプションまたは各円で中心を設定します。

center : new google.maps.LatLng(circle.lat,circle.lng)
于 2013-11-14T11:52:50.473 に答える