2012-05-09 20 views

cevap

1

kısa cevap: hayır, Google Maps API bu işlevselliği sağlamaz.

Bunu gerçekleştirmenin bir yolu, içinde bulunduğunuz uzamsal verileri (çokgenler) bulmaktır, bir veritabanına (ideal olarak mekansal sorguları destekler) yükler ve sonra da özelliği eklemek için veritabanını AJAX aracılığıyla sorgulamaktır. Haritaya, ilgili itme pimi ile birlikte KMLLayer olarak geometri.

+0

[Google Haritalar Javascript API v3] için özellik isteği (https://code.google.com/p/gmaps-api-issues/issues/detail?id=109) – geocodezip

0

Bunu bir web sitesinde funda.nl adresinden öğrenebilirsiniz. Tek bir mülk seçtiğinizde, seçilen mülkün çevresine çokgen çizildiği bir Google Haritası da gösterir.

7

WikiMapia verilerini kullanarak anladım.

adımlar şunlardır: WikiMapia

  • açıktır.
  • F12 veya Ctrl+Shift+I tuşlarına basın. enter image description here

  • istediğiniz konumu arayın.
  • Mahallede sağ tuşla tıklayın ve Edit Poly'u seçin. enter image description here
  • Geliştirici araçlarda Network'a tıklayın ve getPolygon'a göre filtreleyin. benziyor enter image description here
  • Kopya sunucu yanıtı: Wikimapia.Parser.Itiles.prototype.decodePolygon("Copyed text here");

  • Basın puanla nesneyi döndürür bu Konsolundan sonra yürütülecek girin: Ve enter image description here

  • işlevi gerçekleştirmek için Console sekmesine gidin (Poly'un yolu).

Nesneyi JSON'a dönüştürmek için JSON.stringify kullanıyorum.

Örnek:

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

kodu, yukarıda (JsonFormatter girinti) bu JSON döndürür:

{ 
    "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 
    } 
} 

Son olarak WKT içine JSON açmak için bu regexr.com/3c5m2 gibi normal ifade kullanımı. JSON'u yalnızca Regex'teki "points" dizisindeki nesneleri kopyalamıyorum. RegExr'de değiştirilen metni kopyalayıp POLYGON((pastehere))'a yapıştırın.

Önemli! Düzenli ifadeyi uyguladıktan sonra, son noktayı ilk noktayı tekrarlamanız gerekir. -61,956523060798645 -10,877613428213532

, -61,95640504360199 -10,877718788854143, -61,956791281700134 -10,878393096072424, -61,95735991001129 -10,87805594265392, -61,95682346820831 -10,877339490373695,

-61,956523060798645 -10,877613428213532

Sonra gibi bir şey olsun Bu, t veritabanına eklenebilir:

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)) 

şapka WKT'yi (MySQL gibi) destekler.

WikiMapia'ın bir API vardır, bu işlemin tümü otomatik olabilir, ancak bu benim için iyi çalışır.

İlgili konular