Xin lỗi bạn vì mấy hôm nay tôi không theo dõi được diễn đàn.
Về chuyện vẽ các đường nối lên map thì khá đơn giản. Chỉ cần bạn nắm bắt được tọa độ của mỗi điểm nút.
Tôi vừa thử làm 1 ví dụ cho bạn tại đây :
Trong ví dụ trên, tôi dùng thư viện Walterzorn để hỗ trợ việc tạo ra các đường line. Bạn thử nhập tên nhiều điểm vào ô trống, mỗi điểm cách nhau bằng dấu phẩy, ví dụ : P1, P3, P5, P8... sau đó nhấn nút Draw, các đường nối sẽ xuất hiện.
Nếu xem xét file javascript func.js, bạn sẽ thấy tôi coi mỗi nút trên Map là 1 đối tượng Point có 2 thuộc tính name và coordinate. Trên map có tổng cộng 12 đối tượng từ P1 đến P12. Chúng được gom vào trong 1 mảng tên là Points để tiện tham chiếu.
PHP Code:
function Point(name, coordinate){
this.name=name;
this.coordinate=coordinate.split(',');
}
Points=new Array(
new Point('P1', '183,149'),
new Point('P2', '299,105'),
new Point('P3', '526,85'),
new Point('P4', '395,243'),
new Point('P5', '567,212'),
new Point('P6', '574,290'),
new Point('P7', '668,334'),
new Point('P8', '439,359'),
new Point('P9', '305,271'),
new Point('P10', '179,267'),
new Point('P11', '195,388'),
new Point('P12', '95,244')
);
Khi nút Draw được nhấn, chương trình sẽ phân tích chuỗi nhập vào để từ tên nút tìm ra các đối tượng Point đúng theo thứ tự. Có được danh sách cách đối tượng Point, chương trình lấy tập hợp các giá trị coordinate và cung cấp cho bộ phận vẽ hình ảnh.
Muốn đường màu đỏ vẽ ra trùng khớp với đường đi trên bản đồ, bạn phải xác định tọa độ từng điểm trên tuyến đường đó. Chẳng hạn đoạn P1->P2 gồm những tọa độ nào. Càng chi tiết thì hình vẽ ra càng chuẩn xác.
PS : Vấn đề bạn cần đầu tư thời gian nghiên cứu không phải là vẽ như thế nào, mà là thuật toán tìm ra đường đi ngắn nhất.
Bookmarks