2010-08-04 91 views
22

Tôi làm cách nào để sử dụng API Google Maps để vẽ đường? Ví dụ: để có một loạt các điểm được tải lên bản đồ (tôi hiện có điều này) và vẽ một đường từ mỗi điểm hiển thị cho người dùng tuyến đường họ có thể xem để xem tất cả các điểm đó? Làm thế nào sau đó tôi sẽ tải lên khi người dùng nhìn thấy bản đồ?vẽ đồ thị trên Google Maps

+0

Nếu tôi có thể thêm vào câu trả lời của mình để làm rõ, vui lòng cho tôi biết. – RedBlueThing

+0

@Cannonade Yeah, thật tuyệt .. xin lỗi .. tôi có thể lấy một ví dụ không? chỉ là một chút bối rối – Skizit

+0

Tôi sẽ thực hiện một ví dụ và cập nhật câu trả lời của tôi ngay sau khi tôi có cơ hội. – RedBlueThing

Trả lời

28

Bạn có thể đặt waypoints tài sản trên một đối tượng và nó sẽ vẽ con đường từ nguồn đến đích thông qua tất cả các điểm trong mảng của bạn:

Mảng điểm tọa độ trung gian. Chỉ đường sẽ được tính từ nguồn gốc đến đích bằng cách mỗi điểm tham chiếu trong mảng này.

Một khi bạn đã thiết lập các waypoints thuộc tính, bạn gọi phương thức tuyến đường để tính toán hướng:

route(request:DirectionsRequest, callback:function(DirectionsResult, DirectionsStatus))) 

Một khi bạn đã DirectionsResult của bạn, bạn có thể sử dụng đối tượng DirectionsRenderer để làm cho kết quả trên Bản đồ Google.

Cập nhật với ví dụ

làm việc Các mã sau đây tạo ra một yêu cầu hướng giữa hardcoded bắt đầu và kết thúc điểm qua một loạt các ba waypoints:

// three points through which the directions pass 
var point1 = new google.maps.LatLng(-33.8975098545041,151.09962701797485); 
var point2 = new google.maps.LatLng(-33.8584421519279,151.0693073272705); 
var point3 = new google.maps.LatLng(-33.84525521656404,151.0421848297119); 

// build an array of the points 
var wps = [{ location: point1 }, { location: point2 }, {location: point3}]; 

// set the origin and destination 
var org = new google.maps.LatLng (-33.89192157947345,151.13604068756104); 
var dest = new google.maps.LatLng (-33.69727974097957,150.29047966003418); 

var request = { 
     origin: org, 
     destination: dest, 
     waypoints: wps, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 

Bạn có thể tìm thấy một ví dụ làm việc của mã này here (source).

N.B. Hãy nhớ rằng bạn chỉ có thể sử dụng tối đa tám điểm tham chiếu trong mảng của mình, trừ khi bạn chuyển sang tài khoản doanh nghiệp.

+0

A B C đang hiển thị dưới dạng điểm đánh dấu trên bản đồ. Chúng được đặt ở đâu? Làm cách nào để thay đổi điều này thành trống hoặc cho tiêu đề trên địa điểm? – LTech

+2

cảm ơn vì các điểm tham chiếu giới hạn thông tin –

3

Bạn có thể sử dụng bản đồ tĩnh, sau đó lặp qua các điểm của bạn và vẽ các điểm bằng cách sử dụng thông số đường dẫn.

Cái gì như:

&path=color:blue|weight:5|45.123,-123.595|46.456,-124.985 
+3

Bạn có thể chia sẻ mã hoàn chỉnh mà bạn đang nói đến không? –

0

Tôi đã thực hiện việc này trên Android. Google có dịch vụ cho việc này ở đây là liên kết https://developers.google.com/maps/documentation/roads/intro

Bạn sẽ tìm thấy một cuộc gọi API mẫu trên trang này tại đây. Thêm một số hướng dẫn web. https://developers.google.com/maps/documentation/roads/snap

Đây là cuộc gọi web ví dụ cho dịch vụ. https://roads.googleapis.com/v1/snapToRoads?path=-35.27801,149.12958|-35.28032,149.12907|-35.28099,149.12929|-35.28144,149.12984|-35.28194,149.13003|-35.28282,149.12956|-35.28302,149.12881|-35.28473,149.12836&interpolate=true&key=YOUR_API_KEY

Nếu bộ nhớ phục vụ, tôi tin rằng bạn có thể có tối đa 100 điểm cho mỗi cuộc gọi và bạn bị tính phí cho mỗi cuộc gọi bất kể số điểm.

Cuộc gọi ở trên cũng có thể được định cấu hình để chụp đường.

Theo như vẽ bản vẽ khi bản đồ tải, điều này phụ thuộc vào công nghệ bạn đang sử dụng. Tôi biết rằng nó rất dễ dàng.NET WinForms

Nếu bạn đăng nhận xét về câu hỏi của mình; cho tôi biết bạn đang sử dụng công nghệ gì, tôi có thể cung cấp cho bạn thêm một số lời khuyên.

Nếu bạn muốn kiểm tra các tuyến đường của bạn miễn phí, tôi thấy một chút trang web tiện lợi: https://www.darrinward.com/lat-long/

Hope this helps.

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