La Red de Conocimientos Pedagógicos - Currículum vitae - El método para agregar una capa al terreno en Google Map API 2.0 es map.addOverlay() y luego el método equivalente en Google Map API 3.0;

El método para agregar una capa al terreno en Google Map API 2.0 es map.addOverlay() y luego el método equivalente en Google Map API 3.0;

Para responder primero a la última pregunta, parece que LatLng ya no proporciona el método distanciaDesde.

Pero puedes calcular esto tú mismo usando la fórmula:

d=111.12cos{1/[sinΦAsinΦB十cosΦAcosΦBcos(λB—λA)]}

Entre ellos A La longitud y latitud del punto B son λA y ΦA respectivamente, la longitud y latitud del punto B son λB y ΦB respectivamente, y d es la distancia.

Pregunta anterior:

Según la documentación, para crear una superposición personalizada:

Establezca el prototipo del objeto personalizado en google. Una nueva instancia de maps.OverlayView. (). Esto permite efectivamente la "subclasificación" de la clase superpuesta.

Cree un constructor para la superposición personalizada y establezca todos los parámetros de inicialización en el constructor en propiedades personalizadas.

Implemente el método onAdd() en el prototipo para adjuntar la superposición al mapa. Cuando el mapa está listo para adjuntar una superposición, se llama a OverlayView.onAdd().

Implemente el método draw() en el prototipo para manejar la visualización del objeto. Del mismo modo, el sistema llama a OverlayView.draw() después de que se muestra el objeto por primera vez.

También debes implementar el método onRemove() para limpiar cualquier elemento agregado a la superposición.

Ejemplo específico (escrito por mí, con algunos comentarios):

NameOverlay.prototype = new google.maps.OverlayView() // Extender OverlayView

función inicializar() {

...

var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

var nameView = new NameOverlay(point, name, map); // Crea una nueva capa NameOverlay y agrégala al mapa actual, y pasa los parámetros punto y nombre.

}

función NameOverlay(punto, nombre, mapa) {

// Inicialización, anota todos los parámetros (punto, nombre, mapa)

this.point_ = punto;

this.name_ = nombre;

this.map_ = mapa

this.div_ = null; / Defina un div que se insertará en la página actual en onAdd.

this.setMap(map); // Esto probablemente sea similar al addOverlay original

}

NameOverlay.prototype.onAdd = function() {

p>

// Crear capa DIV

var div = document.createElement('DIV');

div.style.borderStyle = "none ";

p>

div.style.borderWidth = "0px";

div.style.position = "absolute";

// Aquí está el contenido real, solo en el ejemplo Establezca un elemento span para mostrar el texto del nombre

var text = document.createElement("span");

text.nodeValue = name_;

div.appendChild (texto);

this.div_ = div;

// Agregar al mapa actual

var panes = this.getPanes ();

panes.overlayImage.appendChild(div);

}

NameOverlay.prototype.draw = function() {

// Usar proyección para convertir latitud y longitud a coordenadas xy

var overlayProjection = this.getProjection();

var center = overlayProjection.fromLatLngToDivPixel(this.point_);

// Configuración El tamaño y la posición de la capa

var div = this.div_

div.style.left = center.x 'px'; /p>

div.style .top = center.y 'px';

div.style.width = '100px'; 10px';

}

NameOverlay.prototype.onRemove = function() {

this.div_.parentNode.removeChild(this.div_

this.div_ = null;

}