2012-07-14 33 views
8

Dựa trên hàm Google Maps JavaScript API v3 documentation, google.maps.Polygon của lớp getPath() trả về một MVCArray. Trong trường hợp đơn giản, đường dẫn của Đa giác có thể là một mảng duy nhất là LatLngs được chuyển đổi thành loại MVCArray khi được chuyển vào hàm setPath() của google.maps.Polygon.LatLng từ Google Maps Polygon getPath()

Trường hợp trên là những gì tôi đang xử lý hiện tại. Tôi chuyển vào một mảng LatLngs và trả lại (những gì tôi cho là) ​​MVCObject khi tôi gọi getPath() trên đối tượng Đa giác của tôi. Câu hỏi của tôi là: Làm cách nào để chuyển đổi số MVCObject này trở lại thành một mảng LatLngs tạo thành hình dạng đa giác? Có một số API Google Maps được tích hợp sẵn trong API mà tôi bị thiếu không? Tôi cảm thấy như có một loại chức năng chuyển đổi được xây dựng rõ ràng hoặc một cái gì đó trong API làm tôi bực mình.

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

24

Khi bạn gọi Polygon.getPath()api-doc, sự trở lại là một MVCArrayapi-doc của LatLng trường hợp đại diện cho con đường đầu tiên của Polygon. Bạn có thể trực tiếp nhận được các thành viên của MVCAarray theo hai cách:

  1. Gọi MVCAarray.getArray, mà sẽ trả lại Javascript cơ bản Array chứa LatLng thành viên.
  2. Sử dụng MVCArray.getAt(index), sẽ trả lại bất kỳ thứ gì ở chỉ mục đó trong MVCArray (một số LatLng trong trường hợp này). Điều này cung cấp cho bạn một cách để thiết lập một vòng lặp JavaScript for để lặp qua các thành viên của mảng.

Bạn cũng có thể làm việc gián tiếp với các thành viên của MVCArray bằng cách sử dụng chức năng forEach(callback:function(*, number)). Trong trường hợp này, bạn phải chuyển một chức năng gọi lại chấp nhận hai tham số:

  1. Thành phần thực tế của MVCArray.
  2. Chỉ mục mảng có phần tử đó.
+0

Tất nhiên. Không thể tin rằng tôi đã bỏ lỡ điều đó trong tài liệu. Cảm ơn. –

+0

Có cách nào để lấy LngLat thay vì LatLong (tọa độ geoJson) không? – AllJs