Карта Bing не отображается, когда я добавляю еще один параметр в свою функцию

Я загружаю долготу и широту из своей базы данных, я хочу добавить дополнительное поле для своей функции и передать другие значения из моей базы данных, чтобы показать, когда я нажимаю на свою булавку, она отлично работает только с широтой и долготой в качестве параметров для функции AddData(широта,долгота), но как только я добавляю другое значение, например AddData(широта,долгота,имя зоопарка), моя карта больше не отображается. Я не уверен, что делаю неправильно, и прошу прощения, если это простая ошибка, но я только начинаю привыкать к 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>

person Newbie    schedule 05.05.2016    source источник


Ответы (1)


Добавление дополнительного параметра в вашу функцию не должно приводить к остановке работы карты. Я подозреваю, что при доступе к значению @item.ZooName возникает ошибка. Я предполагаю, что это строка, ее, вероятно, нужно заключить в кавычки. Вы должны увидеть ошибку в консоли браузера. Таким образом, ошибка, вероятно, препятствует запуску кода для загрузки карты, и поэтому карта никогда не загружается.

person rbrundritt    schedule 05.05.2016
comment
Большое спасибо, я пытался и не мог найти, в чем ошибка, если я заключу ее в кавычки, это сработало. Я предположил, что даже если это строковое значение, я смогу передать его, а затем использовать метод .toString() для его преобразования, чтобы убедиться. - person Newbie; 06.05.2016