#google-maps-api-3 #sencha-touch #google-maps-markers
#google-maps-api-3 #sencha-touch #google-карты-маркеры
Вопрос:
У меня возникла некоторая проблема при установке маркера, я нашел этот код для создания карты Google, и он работает. Но теперь я хочу установить маркер с моим текущим положением, и проблема в том, что я не знаю, где находится объект Google map, без этого маркер не отображается.
this.mapg = new Ext.Map({
useCurrentLocation:true,
geo:new Ext.util.GeoLocation({
autoUpdate:true,
timeout:2000,
listeners:{
locationupdate: function(geo) {
center = new google.maps.LatLng(geo.latitude, geo.longitude);
// Set the marker
marker = new google.maps.Marker({
map:geo.map,//??? No idea where is the google map object
position: center
});
if (this.rendered)
this.update(center);
else
this.on('activate', this.onUpdate, this, {single: true, data: center});
},
locationerror: function(geo){
alert('got geo error');
}
}
})
});
Ответ №1:
Потратив день на поиск в Google, я основал это решение:
ascom.views.MapG = Ext.extend(Ext.Panel, {
layout:'card',
initComponent: function(){
var infowindow = new google.maps.InfoWindow({
content: 'prova'
});
this.map = new Ext.Map({
mapOptions : {
zoom: 12,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
}
},
useCurrentLocation: true,
listeners: {
maprender : function(comp, map){
var marker = new google.maps.Marker({
position: map.center,
title : 'Infofactory HQ',
map: map
});
infowindow.open(map, marker);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
}
});
this.panel = new Ext.Panel({
layout:'fit',
items:this.map,
dockedItems:[
{
xtype:'toolbar',
title:'Map GO'
}
]
});
this.items = this.panel;
ascom.views.MapG.superclass.initComponent.call(this);
}
});
Комментарии:
1. Отличный пример, но информационное окно открывается только потому, что оно явно запущено — infowindow.open. Прослушиватель событий щелчка, похоже, у меня не работает. Я также попробовал «нажать» — не удалось заставить это реагировать на взаимодействие с пользователем — протестировано на iOS6 и iOS7. У кого-нибудь еще возникает эта проблема?
Ответ №2:
Это в:
mapg.map
Вы не показываете, членом какого mapg является, но вы могли бы получить к нему явный доступ.