Tôi có một số dữ liệu được thu thập mặc dù đã lắp đặt thiết bị GPS trong ô tô. Vì vậy, dữ liệu tôi có về cơ bản nằm trên/xung quanh đường/đường. Mỗi tọa độ có một số giá trị. Định dạng của dữ liệu là một cái gì đó như thế này.100k điểm đánh dấu trở lên trên bản đồ google mà không cần nhóm
lat | long | value
---------------------------------
12.979155 | 77.644925 | 6
---------------------------------
12.97916833 | 77.64493667 | 2
---------------------------------
12.97917167 | 77.64492167 | 8
Nhiệm vụ của tôi ở đây là vẽ các bản đồ dài này trên bản đồ google. Nó có vẻ là nhiệm vụ khá dễ dàng khi chúng ta nói về việc đặt 10, 100 hoặc 1000 điểm đánh dấu. Nhưng như tôi đã đề cập ở trên, chúng tôi đang thu thập dữ liệu bằng lái xe và khoảng cách giữa một hai lat-long hoặc hai điểm sẽ được trong vài feets (nói 2-3 feet).
Vì vậy, vào cuối cuộc khảo sát, tôi sẽ có 90-100k thời gian dài cho một phần nhỏ của một thành phố và có thể lên đến một triệu cho toàn thành phố.
Tôi đã thử thêm điểm đánh dấu 9-10k và mức đánh dấu là tốt nhưng khi tôi cố gắng tải 40k, 50k, 60k, trình duyệt của tôi rất chậm và đây là thông báo lỗi tôi kết thúc.
Uncaught RangeError: Maximum call stack size exceeded main.js:1
Tôi đã được googling rất nhiều về nó, nhưng tôi m không thể tìm thấy bất kỳ ví dụ hoặc hướng dẫn đó sẽ dẫn tôi để đặt 1 triệu điểm đánh dấu bằng cách sử dụng công nghệ tôi biết một chút. (Đó là asp.net). Tìm thấy ví dụ này http://www.scribblemaps.com/markerComplex/ Bởi Jonathan Wagner, nhưng tôi không thể hiểu nó và thực hiện nó trong mã hiện tại của tôi mà đi như thế này.
// Để tìm nạp lâu dài từ máy chủ MSSQL.
function PushValues(ParameterID) {
a = ParameterID.slice(5);
var CityID = $('#ddlCity').val().split('|');
$.ajax({
type: "POST",
url: "index.aspx/PushLatLong",
data: "{CityID:'" + CityID[0] + "',OperatorID:'" + $('#ddlOperator').val() + "',ParameterID:'" + ParameterID.slice(4) + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function (response) {
GooglePlaces = response.d.split('#');
if (GooglePlaces != "Blank") {
HasValues = 1;
} else {
HasValues = 0;
}
},
Error: function (r) {
}
});
}
// Giá trị địa điểm trong bản đồ google.
function PlaceValues() {
var options = { zoom: 3, center: new google.maps.LatLng(37.09, -95.71), mapTypeId: google.maps.MapTypeId.ROADMAP };
var map = new google.maps.Map(document.getElementById('map'), options);
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < GooglePlaces.length; i = i + 2) {
ltlg = new google.maps.LatLng(GooglePlaces[i], GooglePlaces[i + 1]);
var marker = new google.maps.Marker({
position: ltlg,
map: map,
title: 'Place number',
icon: "img/GoogleIcons/" + legendfirstvalue[1]
});
bounds.extend(ltlg);
}
map.fitBounds(bounds)
$('#DivLoadImage').hide();
}
Một điều nữa tôi muốn đề cập đến ở đây là màu sắc của điểm đánh dấu tùy thuộc vào giá trị của lat dài. Vì vậy, tôi sẽ có nhiều điểm đánh dấu màu. Tôi đã có thể dễ dàng thử clustring các điểm đánh dấu nhưng, sau đó tôi sẽ không thể nhìn thấy màu sắc đánh dấu cho đến khi tôi zoon vào khu vực. Vì vậy, không có cách nào tôi có thể sử dụng clustring.
Tôi chắc chắn sẽ có hàng triệu lỗi trong mã của tôi. Tôi muốn thay đổi cách tiếp cận của tôi nếu cần thiết. Here là bản trình diễn của ứng dụng.
http://coeindia.in/test/harry/index.html không hoạt động – Kiquenet
Đây là url từ trang web của nhà tuyển dụng cũ của tôi. Họ có thể đã thực hiện một số thay đổi trong các thư mục. – Ravi