JQuery Mobile:无法更新谷歌地图
我们有一个基于位置的应用程序(使用 JQuery Mobile 的 Phone Gap),它应该加载谷歌地图,并带有显示该地点位置的标记。第一次加载后,地图不会刷新。我想根据地址显示不同的位置。
即使我使用die,live似乎也没有解除绑定。
这是代码。
function loadMap(indexClicked){
var offerPosition = getLatAndLong(indexClicked);
var centerSettings = { 'center': offerPosition, 'zoom': 10 };
initMap(centerSettings,indexClicked);
refreshMap();
}
function initMap(centerSettings,indexClicked){
$('#load-map').live('pageshow', function() {
$('#map-canvas').gmap({'center': centerSettings.center, 'zoom': centerSettings.zoom, 'disableDefaultUI':true, 'callback': function() {
var self = this;
self.addMarker({'position': this.get('map').getCenter() }).click(function() {
self.openInfoWindow({ 'content': showAdrressInMap(indexClicked) }, this);
});
}});
});
}
function refreshMap(){
$('#load-map').live('pageshow', function() {
$('#map-canvas').gmap('refresh');
});
}
每次单击按钮时都会调用 loadMap 函数。
PS:第一次加载后,地图似乎被缓存并每次都返回相同的地址。单击标记时,它会刷新工具提示中的地址,但位置似乎相同。我正在使用 jquery mobile 1.0 和电话间隙 1.3.0 以及 jquery.ui.map.js、jquery.ui.map.services.js、jquery.ui.map.extensions.js 和 Modernizr.min.js
We have a location based app in (Phone Gap using JQuery Mobile) which is supposed to load google map with a marker showing the position of the place. After the first load the map doesn't refresh. I want to show different locations based on the address.
The live doesn't seem to get unbinded even if I use die.
Here is the code.
function loadMap(indexClicked){
var offerPosition = getLatAndLong(indexClicked);
var centerSettings = { 'center': offerPosition, 'zoom': 10 };
initMap(centerSettings,indexClicked);
refreshMap();
}
function initMap(centerSettings,indexClicked){
$('#load-map').live('pageshow', function() {
$('#map-canvas').gmap({'center': centerSettings.center, 'zoom': centerSettings.zoom, 'disableDefaultUI':true, 'callback': function() {
var self = this;
self.addMarker({'position': this.get('map').getCenter() }).click(function() {
self.openInfoWindow({ 'content': showAdrressInMap(indexClicked) }, this);
});
}});
});
}
function refreshMap(){
$('#load-map').live('pageshow', function() {
$('#map-canvas').gmap('refresh');
});
}
The function loadMap is called on every button clicked.
PS: After the first load the map seems to get cached and returns the same address every time. When clicking on the marker it refreshes address in the tooltip but the postion seems to be same. I am using jquery mobile 1.0 with phone gap 1.3.0 along with jquery.ui.map.js, jquery.ui.map.services.js, jquery.ui.map.extensions.js and modernizr.min.js
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用以下方法来清除标记、添加新标记并动态设置 jQuery-ui-map 的中心位置。
您可以在下面找到一个示例。如果您按芝加哥按钮,将添加一个标记,并且地图的中心位置将更新为芝加哥,
我希望这会有所帮助。
You may use the following approach in order to clear the markers, add new markers and set dynamically the center position of the jQuery-ui-map.
Below you can find a sample. If you press the Chicago button a marker will be added and map's center position will be updated to the Chicago
I hope this helps.