cuốn sách gpt4 ai đã làm

android — Nhóm các điểm đánh dấu có cùng kích thước cụm với nhau thông qua google maps

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 15:28:12 25 4
mua khóa gpt4 Nike

Tôi muốn sử dụng google maps để nhóm tất cả các điểm đánh dấu gần lại thànhKích thước cụm giống nhau.

Tôi đã thử MarkerClusterer được Google Map hỗ trợ nhưng kích thước cụm khác nhau.

Có ví dụ nào cho tôi không?

Cảm ơn sự giúp đỡ của bạn.

câu trả lời hay nhất

Hiểu cách phân cụm điểm đánh dấu

các Bộ đánh dấuCụm Thư viện sử dụng kỹ thuật phân cụm dựa trên lưới để chia bản đồ thành các ô vuông có kích thước nhất định (kích thước thay đổi ở mỗi mức thu phóng) và nhóm các điểm đánh dấu vào từng lưới ô vuông. Nó tạo ra một cụm tại một điểm đánh dấu cụ thể và các điểm đánh dấu sẽ thêm vào đó. nằm trong giới hạn của nó đối với cụm. Nó lặp lại quá trình này cho đến khi tất cả các điểm đánh dấu được phân bổ vào các cụm điểm đánh dấu dựa trên lưới gần nhất dựa trên mức thu phóng của bản đồ. Nếu các điểm đánh dấu nằm trong giới hạn của nhiều cụm hiện có, thì API JavaScript của Bản đồ sẽ xác định. khoảng cách của điểm đánh dấu từ từng cụm và thêm nó vào cụm gần nhất.

Bạn có thể thiết lập một Bộ đánh dấuCụm tùy chọn điều chỉnh vị trí cụm để phản ánh khoảng cách trung bình giữa tất cả các điểm đánh dấu có trong đó. Bạn cũng có thể tùy chỉnh. Bộ đánh dấuCụm để sửa đổi các tham số khác như kích thước lưới, biểu tượng cụm, văn bản cụm, v.v.

Hãy xem ví dụ sau:

tôi đã sử dụngkích thước lướiTham số đặt giá trị nhóm cho thẻ của tôi. Bằng cách này bạn có thể đạt được những gì bạn muốn.

hàm initMap() {

var map = new google.maps.Map(document.getElementById('map'), {
thu phóng: 3,
trung tâm: {
vĩ độ: -28.024,
lng: 140.887
}
});

// Tạo một mảng các ký tự chữ cái dùng để gắn nhãn cho các điểm đánh dấu.
var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

// Thêm một số điểm đánh dấu vào bản đồ.
// Lưu ý: Mã sử ​​dụng phương thức JavaScript Array.prototype.map() để
// tạo một mảng các điểm đánh dấu dựa trên mảng "vị trí" nhất định.
// Phương thức map() ở đây không liên quan gì đến API Google Maps.
var marker = location.map(function(location, i) {
trả về google.maps.Marker mới({
vị trí: vị trí,
nhãn: nhãn[i % labels.length]
});
});

// Thêm một bộ đánh dấu để quản lý các điểm đánh dấu.
var markerCluster = new MarkerClusterer(map, marker, {
imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m',
Kích thước lưới: 10
});
}
vị trí var = [{
vĩ độ: -31.563910,
lng: 147.154312
},
{
vĩ độ: -33.718234,
lng: 150.363181
},
{
lat: -33.727111,
lng: 150.371124
},
{
lat: -33.848588,
lng: 151.209834
},
{
vĩ độ: -33.851702,
lng: 151.216968
},
{
vĩ độ: -34.671264,
lng: 150.863657
},
{
vĩ độ: -35.304724,
lng: 148.662905
},
{
vĩ độ: -36.817685,
lng: 175.699196
},
{
lat: -36.828611,
lng: 175.790222
},
{
vĩ độ: -37.750000,
lng: 145.116667
},
{
lat: -37.759859,
lng: 145.128708
},
{
vĩ độ: -37.765015,
lng: 145.133858
},
{
vĩ độ: -37.770104,
lng: 145.143299
},
{
vĩ độ: -37.773700,
lng: 145.145187
},
{
vĩ độ: -37.774785,
lng: 145.137978
},
{
lat: -37.819616,
lng: 144.968119
},
{
vĩ độ: -38.330766,
lng: 144.695692
},
{
lat: -39.927193,
lng: 175.053218
},
{
lat: -41.330162,
lng: 174.865694
},
{
vĩ độ: -42.734358,
lng: 147.439506
},
{
vĩ độ: -42.734358,
lng: 147.501315
},
{
vĩ độ: -42.735258,
lng: 147.438000
},
{
lat: -43.999792,
lng: 170.463352
},
{
lat: -43.998792,
lng: 170.463352
},
{
lat: -43.999792,
lng: 170.413352
},
{
lat: -43.999000,
lng: 170.463000
}
]
/* Luôn đặt chiều cao bản đồ một cách rõ ràng để xác định kích thước của div
* phần tử chứa bản đồ */

#bản đồ {
chiều cao: 100%;
}


/* Tùy chọn: Làm cho trang mẫu lấp đầy cửa sổ.

html,
body {
chiều cao: 100%;
margin: 0;
padding: 0;
}


Để biết các ví dụ nâng cao, hãy kiểm tra điều này -> Một ví dụ về MarkerClusterer v3Đối với tất cả các ví dụ, hãy nhấp vào đây .

Về javascript - Nhóm các điểm đánh dấu có cùng kích thước cụm lại với nhau thông qua Google Maps, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/45047708/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress