Pregunta

Estoy usando jquery-ui-map aCree una instancia de Google Maps como esta:

$('#CHMap').gmap({
  mapTypeControl : false
}).bind('init', function(evt, map) {
  log("Map initilised");
});

luego en otra parte en script que estoy usando Infobox para agregar algunos cuadros de información de estilo que se pueden llenar con datos retirados de un servicio de geolocalización como SO:

var boxText = document.createElement("div");
var ib = new InfoBox(myOptions); //myOptions can be ignored for this example

$.each(data, function(name, value) {
  $('#CHMap').gmap('addMarker', {
    id:value['YourId'],
    'position': value['Latitude']+','+value['Longitude'],
    'bounds': true,
    'icon': '/img/gicon.png'
  }).click(function() {
    boxText.innerHTML = "hello";
    ib.setContent(boxText);
    ib.open(map, this);
  });
});

'DATOS' es un objeto devuelto desde el servicio de geolocalización.Si coloco el código 'ADDMARKER' anterior dentro de la función de 'init' enlazado Cuando se crea el GMAP, la infoBOX muestra bien.Cuando utilice el código 'AddMarker' en otro lugar, obtengo "Descuento de referencia: Mapa: Mapa no está definido" Error en la consola.

¿Cómo puedo hacer referencia correctamente el 'mapa'?Parece que no puedo hacer var map = $('#CHMap').gmap({//options}); como los documentos 'jquery-ui-map' sugieren que GMAP no devuelve nada.

¿Fue útil?

Solución

creo que puedes hacer

var map = $('#CHMap').gmap();

Nota de OP.La forma correcta en el último complemento es:

var map = $('#CHMap').gmap('get', 'map');

No veo dónde está diciendo que no devuelve nada en la API

Cuando necesita ejecutar acceder al mapa, puede agregar el código dentro de un escuchador de eventos de Google Maps que espera hasta que las baldosas del mapa se carguen así.

A medida que Gmaps está recuperado de ASYNC de Google, no siempre puede estar seguro de que estará allí cuando lo llame a menos que haga algo así.

google.maps.event.addListener(YOUR_GOOGLE_MAPS_INSTACE, 'tilesloaded', function() {
       // put your initialization code in here.
}

Por lo tanto, solo se ejecutará después de que los mapas estén completamente cargados.

vítores de Brasil!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top