我正在为移动设备制作商店定位器应用程序。数据库查询运行并获取距离和 lan、lat 值等,并在页面上显示最近的商店。
然后用户可以点击“在地图上查看”以在谷歌地图上查看商店和当前位置。这是来自 ajax() 成功回调的代码的主要部分:
success: function(result){
var rowCount = result.name.length;
if(rowCount <= 0){
$('span.locatorResults').html("There were no stores found within your specified radius.");
}else{
$( '#storeLocatorMapDisplay' ).live( 'pageshow',function(event){
initializeMapAll(); //This initialise SHOULD be called while the map_canvas div is in the DOM. This is why we have to do hacky workaround of resizing etc..
});
$('span.locatorResults').html("There are " + rowCount + " results within a " + result.radius + " mile radius of your current location:<br /><br />");
for (var i = 0; i < rowCount; i++) {
var storelatlng = new google.maps.LatLng(
parseFloat(result.storeLat[i]),
parseFloat(result.storeLon[i])
);
$( '#storeLocatorMapDisplay' ).live( 'pageshow',function(event){
createMarkerAll(storelatlng, result.name[i], result.address[i]);
});
}
$( '#storeLocatorMapDisplay' ).live( 'pageshow',function(event){
createMarkerCurrentLocation(currentlatlng);
});
}
}
我的问题是,我在地图区域周围有很多灰色填充,我阅读了它,因为地图在 map_canvas div 加载到 DOM 之前被初始化。
所以我决定在加载地图页面时初始化地图和标记,但这需要很多 .live('pageshow') 事件。
我的问题是......在创建标记之前和将地图画布加载到 DOM 之前,是否有更简单的方法来初始化地图???请记住,标记(据我所知)必须在 ajax 请求的成功回调中生成。
谢谢你的时间 :)