我试图在JQuery UI选项卡中延迟加载Virtual Earth地图。我在另一个标签中也有Google地图。我想要做的是当用户移动任一地图时,两个地图都匹配中心位置。以下是我尝试虚拟地球方面的方法
var vemap;
//Lazy Load the Virtual Earth API
function loadMapControl() {
var script = document.createElement("script");
script.setAttribute("src", "http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&onScriptLoad=initMap");
script.setAttribute("type", "text/javascript");
document.getElementsByTagName("head")[0].appendChild(script);
};
//Now load the Map
function initMap() {
var StartPoint = new Microsoft.Maps.Location(currentLat, currentLng);
vemap = new Microsoft.Maps.Map(document.getElementById("ve-map-canvas"),
{credentials:"<creds>",
center: StartPoint,
zoom: gemap.getZoom(),
mapTypeId: Microsoft.Maps.MapTypeId.birdseye,
disableBirdseye:true,
showMapTypeSelector:false});
Microsoft.Maps.Events.addHandler(vemap, 'viewchangeend', veChanged);
};
function veChanged() {
var localMap = this.target;
var point = new GeoPoint(localMap.GetCenter().Longitude, localMap.GetCenter().Latitude);
$("#lat").val(point.getLatDeg());
$("#lng").val(point.getLonDeg());
$("#currentZoom").val(localMap.GetZoomLevel());
currentLat = localMap.GetCenter().Latitude;
currentLng = localMap.GetCenter().Longitude;
currentZoom = localMap.GetZoomLevel();
};
现在当我重新定位Virtual Earth地图时,会触发veChanged事件,但是localMap.GetCenter()失败并显示“Uncaught TypeError:undefined is is a function”。我也试过了vemap.GetCenter(),但我得到了相同的结果。关于如何访问vemap的任何想法?
答案 0 :(得分:1)
我认为您的问题是您使用了错误的函数名称try getCenter()
而不是GetCenter()
。请注意,第一个字母是小写的:
var point = new GeoPoint(localMap.getCenter().logitude, localMap.getCenter().latitude);
请注意,我使用的其他idetifiers也有小写的第一个字母。