Tôi đang cố gắng thực hiện một số dự án cá nhân mà tôi đang cố gắng thêm lớp biển trên bản đồ google. Vì vậy, quyết định đi với tùy chọn osm miễn phí.Mở bản đồ trên Google Maps - thêm lớp hồ sơ biển như mặc định
Tôi muốn thêm hồ sơ biển và lớp ais làm lớp mặc định trên đường may. Cho đến nay semarks lớp osm trên bản đồ google là ok.
Làm cách nào tôi có thể thêm các lớp khác làm lớp mặc định với lớp seamark. Tôi không thể tìm ra cách thêm các lớp bổ sung làm mặc định trên bản đồ.
Cảm ơn trước!
và Snippet:
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 9,
center: {
lat: 44.5,
lng: 13.1
},
mapTypeControlOptions: {
mapTypeIds: ['roadmap']
}
});
var osmMapTypeOptions = {
getTileUrl: function(coord, zoom) {
console.log("getTileUrl("+coord.x+","+coord.y+","+zoom+")");
var z = zoom;
var limit = Math.pow(2, z);
if (coord.y < 0 || coord.y >= limit) {
return null;
} else {
coord.x = ((coord.x % limit) + limit) % limit;
url = "http://t1.openseamap.org/seamark/";
path = zoom + "/" + coord.x + "/" + coord.y + "." + "png";
console.log("getTileUrl:" + url + path);
return url + path;
}
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
maxZoom: 19,
minZoom: 0,
name: "OSM"
};
function getTileURL(bounds) {
var res = this.map.getResolution();
var x = Math.round((bounds.left - this.maxExtent.left)/(res * this.tileSize.w));
var y = Math.round((this.maxExtent.top - bounds.top)/(res * this.tileSize.h));
var z = this.map.getZoom();
var limit = Math.pow(2, z);
if (y < 0 || y >= limit) {
return null;
} else {
x = ((x % limit) + limit) % limit;
url = this.url;
path = z + "/" + x + "/" + y + "." + this.type;
if (url instanceof Array) {
url = this.selectUrl(path, url);
}
return url + path;
}
}
var osmMapType = new google.maps.ImageMapType(osmMapTypeOptions);
map.overlayMapTypes.insertAt(0,osmMapType);
map.overlayMapTypes.insertAt(1,osmMapType);
}
google.maps.event.addDomListener(window, "load", initMap);
html,
body,
#map {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?language=en&libraries=drawing,geometry"></script>
<div id="map"></div>
Cảm ơn bạn đã trả lời, nhưng nó thực sự không phải là những gì tôi đang tìm kiếm. Tôi cần lớp hồ sơ biển mở rộng. –
Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/17681926) – R3tep