2013-12-17 22 views
5

Tôi đã phát triển một ứng dụng trên google chrome, và tôi đã sử dụng thư viện MarkerWithLabel, mà tôi tin là do các nhà phát triển google viết. Tôi đang sử dụng một ít hơn 100 điểm đánh dấu trên bản đồ và nó có vẻ là khá trơn tru cho đến khi tôi kiểm tra trong firefox (và cho phép thậm chí không đề cập đến IE). Đó là khá lagn laggy trong FF. Bất kỳ cách nào để tối ưu hóa nó?Cách tối ưu hóa MarkerWithLabel trên bản đồ google khi có quá nhiều điểm đánh dấu

http://jsfiddle.net/zDTNS/2Here is a sample in jsfiddle

Để làm rõ, có 200 cột mốc thường xuyên hoạt động tốt. Sự cố hiển thị khi sử dụng MarkerWithLabel

+0

Trong v3 100 điểm đánh dấu phải hợp lý nhanh chóng, đó là hàng nghìn điểm đánh dấu nơi xảy ra sự cố về hiệu suất. Tôi đã thấy [báo cáo của một xuống chậm trong việc thêm các dấu hiệu trong bản phát hành sau] (https://code.google.com/p/gmaps-api-issues/issues/detail?id=6140), có lẽ thử 3.13. – geocodezip

+0

[fiddle using 3.13] (http://jsfiddle.net/FL3d7/2/) – geocodezip

+0

Điều đó dường như không phải là vấn đề với tôi. Các liên kết bạn đã thực hiện tương tự trên máy của tôi. Chrome chạy mượt mà, Firefox chậm chạp trên cả hai. – odle

Trả lời

1

Sau khi dành 2 tuần nghiên cứu và thử tất cả các loại phương pháp, được đề xuất nhiều nhất ở đây, tôi đã đi đến kết luận rằng không có cách nào để tối ưu hóa vào lúc này. Đối với một số lý do firefox đấu tranh khi có divs trên bản đồ và giữ chúng đồng bộ. Hiệu suất trên firefox mới nhất gần giống như IE8.

Tôi nhận thấy rằng có một tấn các điểm đánh dấu trên google không gây ra bất kỳ sự chậm trễ nào, nhưng các div làm. Những gì tôi đã kết thúc là tạo một chức năng phía máy chủ chuyển đổi văn bản thành png. Khi khởi tạo điểm đánh dấu google, bạn tạo url biểu tượng TextToImage.aspx?text=Hello&size=13 Sau đó, tôi đặt neo của điểm đánh dấu mới thành (15, 15) và nó trở thành 'nhãn' mới của tôi. Tôi đã thêm một số trình nghe nhấp chuột và di chuột qua điểm đánh dấu nhãn và thì đấy! Cải thiện mạnh mẽ hiệu suất.

1

Nói chung, cách tốt nhất để tối ưu hóa mọi ứng dụng bản đồ của Google là sử dụng kỹ thuật phân cụm. Khi ứng dụng tải nhiều hơn và nhiều hơn nữa các điểm đánh dấu phía trên đầu phía khách hàng sẽ chỉ tăng lên. Việc bổ sung các nhãn chỉ hợp chất vấn đề.

Một số kỹ thuật phân cụm tồn tại và rất đơn giản để triển khai, tôi khuyên bạn nên bắt đầu với bài viết này: https://developers.google.com/maps/articles/toomanymarkers.

Chỉnh sửa Rời khỏi vị trí trên trong trường hợp bất kỳ ai không có cùng yêu cầu về thông số kỹ thuật, nhưng vấn đề tương tự.

Đề xuất duy nhất khác của tôi là tắt nhãn khi ở trên một mức thu phóng nhất định? Điều này ít nhất sẽ làm giảm bớt một số vấn đề hiển thị tồi tệ nhất.

Chỉnh sửa Sau khi thực hiện một chút nghiên cứu, thư viện được giới thiệu here đã được chứng minh là có nhiều đặc tính hiệu suất thuận lợi hơn markerWithLabel. Nó dựa trên một vải html mặc dù vậy là ie9 +.

+0

cảm ơn cho các đề xuất, nhưng tiếc là không ai trong số những phương pháp đáp ứng các yêu cầu của khách hàng. Tôi cần hiển thị tất cả các điểm đánh dấu trong chế độ xem cho Hoa Kỳ – odle

+0

Chúng ta đang nói về bao nhiêu điểm đánh dấu? Theo kinh nghiệm của tôi, mọi thứ bắt đầu chậm lại vào khoảng 80 điểm tùy thuộc vào trình duyệt/máy đang sử dụng. – Swires

+0

Tôi có khoảng 70 ~ 80, nhưng tôi nghĩ MarkerWithLabel tăng gấp đôi điều đó. không chắc chắn mặc dù. – odle

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