Bing 当我向我的函数添加另一个参数时地图不显示
Bing Map doesn't display when I add another parameter to my function
我正在从我的数据库中加载经度和纬度,我想为我的函数添加一个额外的字段并从我的数据库中传递其他值以在我单击我的 pin 时显示,它只使用纬度就可以正常工作和经度作为函数 AddData(latitude,longitude) 的参数,但只要我添加另一个值,如 AddData(latitude,longitude,Zoo Name),我的地图就不再显示。我不确定自己做错了什么,如果这是一个简单的错误,我深表歉意,但我刚刚开始习惯 javascript。
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
<script type="text/javascript">
var map = null, infobox, dataLayer;
function GetMap() {
// Initialize the map
map = new Microsoft.Maps.Map(document.getElementById("myMap"),
{ credentials: "API Bing Key" });
dataLayer = new Microsoft.Maps.EntityCollection();
map.entities.push(dataLayer);
var infoboxLayer = new Microsoft.Maps.EntityCollection();
map.entities.push(infoboxLayer);
infobox = new Microsoft.Maps.Infobox(new Microsoft.Maps.Location(0, 0), { visible: false, offset: new Microsoft.Maps.Point(0, 20) });
infoboxLayer.push(infobox);
@foreach (var item in Model)
{
@: AddData(@item.latitude,@item.longitude,@item.ZooName);
//till here
}
}
function AddData(latitude, longitude,ZooName) {
var pin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(latitude, longitude));
pin.Title = latitude.toString();
pin.Description = latitude.toString();
Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
dataLayer.push(pin);
}
function displayInfobox(e) {
if (e.targetType == 'pushpin') {
infobox.setLocation(e.target.getLocation());
infobox.setOptions({ visible: true, title: e.target.Title, description: e.target.Description });
}
}
</script>
<body onload="GetMap();">
<div id='myMap'></div>
</body>
向您的函数添加额外参数不应导致地图停止工作。我怀疑访问@item.ZooName 值时发生错误。我猜这是一个字符串,可能需要用引号括起来。您应该在浏览器控制台中看到一个错误。因此,该错误可能会阻止加载地图的代码触发,因此永远不会加载地图。
我正在从我的数据库中加载经度和纬度,我想为我的函数添加一个额外的字段并从我的数据库中传递其他值以在我单击我的 pin 时显示,它只使用纬度就可以正常工作和经度作为函数 AddData(latitude,longitude) 的参数,但只要我添加另一个值,如 AddData(latitude,longitude,Zoo Name),我的地图就不再显示。我不确定自己做错了什么,如果这是一个简单的错误,我深表歉意,但我刚刚开始习惯 javascript。
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
<script type="text/javascript">
var map = null, infobox, dataLayer;
function GetMap() {
// Initialize the map
map = new Microsoft.Maps.Map(document.getElementById("myMap"),
{ credentials: "API Bing Key" });
dataLayer = new Microsoft.Maps.EntityCollection();
map.entities.push(dataLayer);
var infoboxLayer = new Microsoft.Maps.EntityCollection();
map.entities.push(infoboxLayer);
infobox = new Microsoft.Maps.Infobox(new Microsoft.Maps.Location(0, 0), { visible: false, offset: new Microsoft.Maps.Point(0, 20) });
infoboxLayer.push(infobox);
@foreach (var item in Model)
{
@: AddData(@item.latitude,@item.longitude,@item.ZooName);
//till here
}
}
function AddData(latitude, longitude,ZooName) {
var pin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(latitude, longitude));
pin.Title = latitude.toString();
pin.Description = latitude.toString();
Microsoft.Maps.Events.addHandler(pin, 'click', displayInfobox);
dataLayer.push(pin);
}
function displayInfobox(e) {
if (e.targetType == 'pushpin') {
infobox.setLocation(e.target.getLocation());
infobox.setOptions({ visible: true, title: e.target.Title, description: e.target.Description });
}
}
</script>
<body onload="GetMap();">
<div id='myMap'></div>
</body>
向您的函数添加额外参数不应导致地图停止工作。我怀疑访问@item.ZooName 值时发生错误。我猜这是一个字符串,可能需要用引号括起来。您应该在浏览器控制台中看到一个错误。因此,该错误可能会阻止加载地图的代码触发,因此永远不会加载地图。