2012-05-09 36 views

Trả lời

1

Câu trả lời ngắn gọn là: không có, API Google Maps không cung cấp chức năng đó. Một cách để thực hiện điều này là tìm dữ liệu không gian (đa giác) mà bạn đang inerested, tải nó vào cơ sở dữ liệu (lý tưởng hỗ trợ truy vấn không gian), và sau đó truy vấn cơ sở dữ liệu thông qua AJAX để thêm tính năng hình học dưới dạng KMLLayer vào bản đồ, cùng với chốt đẩy tương ứng.

+0

Yêu cầu tính năng cho [Google Maps Javascript API v3] (https://code.google.com/p/gmaps-api-issues/issues/detail?id=109) – geocodezip

0

Bạn có thể xem hoạt động này trên trang web tại funda.nl. Khi bạn chọn một thuộc tính riêng lẻ, nó cũng hiển thị Bản đồ Google trong đó đa giác được vẽ xung quanh vùng lân cận của thuộc tính được chọn.

7

Tôi nhận nó bằng cách sử dụng dữ liệu WikiMapia.

Các bước thực hiện:

  • mở WikiMapia.
  • Bấm F12 hoặc Ctrl+Shift+I.

enter image description here

  • Tìm kiếm vị trí mà bạn muốn.
  • Nhấp bằng nút bên phải trên vùng lân cận và chọn Edit Poly. enter image description here
  • Trên công cụ nhà phát triển, nhấp vào Network và lọc theo getPolygon. enter image description here
  • Sao chép máy chủ phản ứng giống như: enter image description here

  • Và đi đến Console tab để thực hiện các chức năng: Wikimapia.Parser.Itiles.prototype.decodePolygon("Copyed text here");

  • Nhấn Enter để thực hiện sau này Console sẽ trả lại đối tượng với các điểm (Con đường của Poly).

Tôi sử dụng JSON.stringify để chuyển đổi đối tượng trong JSON.

Ví dụ:

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

Đoạn mã trên sẽ trở về JSON này (thụt đầu dòng trong 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 
    } 
} 

Cuối cùng tôi sử dụng regex như regexr.com/3c5m2 này để biến JSON vào WKT. Tôi không sao chép toàn bộ JSON chỉ các đối tượng trong mảng "points" trong Regex. Trên RegExr tôi sao chép văn bản được thay thế và dán vào POLYGON((pastehere)).

Quan trọng! Sau khi áp dụng regex bạn cần phải lặp lại điểm đầu tiên ở điểm cuối cùng.

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

Sau đó, bạn sẽ có được một cái gì đó như này:

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

Điều đó có thể được chèn vào cơ sở dữ liệu t mũ hỗ trợ WKT (như MySQL).

WikiMapia có API thì tất cả quy trình này có thể tự động, nhưng điều này có hiệu quả đối với tôi.

Các vấn đề liên quan