11

Google Maps API v3で簡単な検索を行い、その結果、次の図のような色付きのポリゴンを含む地図を取得したいと思います。

検索:ピニェイロス、サンパウロ

ここに画像の説明を入力してください

4

3 に答える 3

22

ウィキマピアのデータを使って入手しました。

手順は次のとおりです。

  • ウィキマピアを開きます
  • F12またはを押しCtrl+Shift+Iます。

ここに画像の説明を入力

  • 目的の場所を検索します。
  • 近傍を右クリックし、 を選択しますEdit Polyここに画像の説明を入力
  • 開発者ツールで、 をクリックしNetworkてフィルターしgetPolygonます。 ここに画像の説明を入力
  • 次のようなサーバー応答をコピーします。 ここに画像の説明を入力

  • Consoleタブに移動して関数を実行します。Wikimapia.Parser.Itiles.prototype.decodePolygon("Copyed text here");

  • Enter キーを押して実行すると、コンソールはポイント (Poly のパス) を含むオブジェクトを返します。

JSON.stringifyJSONでオブジェクトを変換するために使用します。

例:

JSON.stringify(Wikimapia.Parser.Itiles.prototype.decodePolygon("-619402099;-109032887;02fe8953fffe5a000ae5fe379a000fedffd250000e40ffd6050007f7ffeff2001925ffd59b001f6fffdc310012dcffed10003b82ffd9b9005514ffc4520053d2ffc807000c92fff82dfffde7000e670005070012ef0009390021bf000572001358fffc3a001a57fffa210013c1ffff940036530008610022fc000284004732fff5f0001fb1fff2960013c1fff80800594efffde7002c72000f16004b5000204600416f0013b2002292"))

上記のコードは、次の JSON を返します ( JsonFormatterのインデント)。

{
   "points":[
      {
         "lat":-10.9032887,
         "lng":-61.9402099
      },
      {
         "lat":-10.9032466,
         "lng":-61.9306183
      },
      {
         "lat":-10.8915629,
         "lng":-61.9308972
      },
      {
         "lat":-10.8903934,
         "lng":-61.9313049
      },
      {
         "lat":-10.8893188,
         "lng":-61.9316697
      },
      {
         "lat":-10.8889079,
         "lng":-61.9318736
      },
      {
         "lat":-10.8878227,
         "lng":-61.9325173
      },
      {
         "lat":-10.8869061,
         "lng":-61.933322
      },
      {
         "lat":-10.8864214,
         "lng":-61.9338048
      },
      {
         "lat":-10.8854416,
         "lng":-61.9353282
      },
      {
         "lat":-10.8839139,
         "lng":-61.9375062
      },
      {
         "lat":-10.8824811,
         "lng":-61.939652
      },
      {
         "lat":-10.8822809,
         "lng":-61.9399738
      },
      {
         "lat":-10.8826496,
         "lng":-61.9399202
      },
      {
         "lat":-10.8831343,
         "lng":-61.9400489
      },
      {
         "lat":-10.8839982,
         "lng":-61.940285
      },
      {
         "lat":-10.8844934,
         "lng":-61.9404244
      },
      {
         "lat":-10.8851677,
         "lng":-61.9403279
      },
      {
         "lat":-10.8856734,
         "lng":-61.9401777
      },
      {
         "lat":-10.8870641,
         "lng":-61.940167
      },
      {
         "lat":-10.8879597,
         "lng":-61.9403815
      },
      {
         "lat":-10.8897823,
         "lng":-61.9404459
      },
      {
         "lat":-10.8905936,
         "lng":-61.9401884
      },
      {
         "lat":-10.8910993,
         "lng":-61.9398451
      },
      {
         "lat":-10.8933855,
         "lng":-61.9396412
      },
      {
         "lat":-10.8945233,
         "lng":-61.9395876
      },
      {
         "lat":-10.8964513,
         "lng":-61.9399738
      },
      {
         "lat":-10.8981264,
         "lng":-61.9408
      },
      {
         "lat":-10.8990114,
         "lng":-61.9413042
      }
   ],
   "bounds":{
      "left":-61.9413042,
      "bottom":-10.9032887,
      "right":-61.9306183,
      "top":-10.8822809,
      "centerLatLng":null
   }
}

最後に、このregexr.com/3c5m2のような正規表現を使用して、JSON を WKT に変換します。JSON全体をコピーするのではなく"points"、Regexの配列内のオブジェクトのみをコピーします。RegExr では、置換されたテキストをコピーして に貼り付けPOLYGON((pastehere))ます。

重要!正規表現を適用した後、最後のポイントで最初のポイントを繰り返す必要があります。

-61.956523060798645 -10.877613428213532 ,-61.95640504360199 -10.877718788854143,-61.956791281700134 -10.878393096072424,-61.95735991001129 -10.87805594265392,-61.95682346820831 -10.877339490373695, -61.956523060798645 -10.877613428213532

次に、次のようなものが得られます。

POLYGON((-61.956523060798645 -10.877613428213532,-61.95640504360199 -10.877718788854143,-61.956791281700134 -10.878393096072424,-61.95735991001129 -10.87805594265392,-61.95682346820831 -10.877339490373695,-61.956523060798645 -10.877613428213532))

これは、WKT をサポートするデータベース (MySQL など) に挿入できます。

WikiMapiaにはAPIがあり、このプロセスはすべて自動化できますが、これは私にとってはうまく機能します.

于 2015-11-09T15:29:04.430 に答える
2

簡単に言えば、いいえ、Google Maps API はその機能を提供していません。

これを実装する 1 つの方法は、関心のある空間データ (ポリゴン) を見つけてデータベース (理想的には空間クエリをサポートする) にロードし、AJAX を介してデータベースにクエリを実行してフィーチャ ジオメトリをKMLLayerとして追加することです。対応する画鋲とともに地図に表示されます。

于 2012-05-11T00:41:16.947 に答える
0

この作業は、funda.nlの Web サイトで確認できます。個々の物件を選択すると、選択した物件の周辺に多角形が描かれた Google マップも表示されます。

于 2012-06-06T13:20:18.123 に答える