Google Maps API V3 - Azulejos personalizada
-
15-10-2019 - |
Pregunta
Actualmente estoy trabajando en Google Maps API V3 sobre aquí
Si amplía de 21 a 23, habrá una superposición de imágenes en el mapa. La imagen es demasiado tiempo para cargar y he decidido dividirlo en diferentes baldosas para facilitar la carga. Estoy usando cortador de baldosas automática para cortar la imagen en azulejos.
Tengo problemas con el guión;
var OrgX = 31551; // the Google Maps X value of the tile at the top left corner of your Photoshop document
var OrgY = 50899; // the Google Maps Y value of the tile at the top left corner of your Photoshop document
Primera pregunta ??strong> ¿Cómo encuentra los valores de X e Y del documento de Photoshop?
Vamos a decir que si me las arreglo para resolver la primera pregunta.
Segunda pregunta ??strong> es el siguiente código correcto para mostrar las baldosas en función del nivel de zoom? O me estoy perdiendo todos los códigos?
var BuildingsLayer = new google.maps.ImageMapType({
getTileUrl: function(coord, zoom) {
return "http://search.missouristate.edu/map/tilesets/baselayer/" + zoom + "_" + coord.x + "_" + coord.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
isPng: true
});
map.overlayMapTypes.push(BuildingsLayer);
Solución
En lugar de utilizar cortador de baldosas automático, que utiliza y recomienda MapTiler. No sólo se rebana la imagen en azulejos y también genera un guión azulejos javascript para utilizarlo.
Sin embargo, el guión está escrito en v2. Puede editar los códigos de acuerdo:
v3 azulejos guión
var maptiler = new google.maps.ImageMapType({
getTileUrl: function(coord, zoom) {
return zoom + "/" + coord.x + "/" + (Math.pow(2,zoom)-coord.y-1) + ".png";
},
tileSize: new google.maps.Size(256, 256),
isPng: true
});
var map;
function initialize() {
map = new google.maps.Map(document.getElementById("map_canvas"));
map.setCenter(new google.maps.LatLng(36.07, -112.19));
map.setZoom(11);
map.setMapTypeId('satellite');
map.overlayMapTypes.insertAt(0, maptiler);
}
Créditos