【问题标题】:How can i pass multiple latlon values from array to bing maps如何将多个经纬度值从数组传递到 bing 地图
【发布时间】:2014-12-05 21:42:28
【问题描述】:

在这里,我试图在 bing 地图上获取多个图钉,所以我有一个纬度和经度数组,我将这些值从数组传递到 bing 地图 lat&lon 变量。

当我使用这些变量在地图上放置图钉时,我在地图上看不到图钉。 我该如何解决这个问题?

这就是我所做的

代码:

function showLoc()
{
    map = new Microsoft.Maps.Map(document.getElementById('myMap'), {credentials: bkey});
    map.setView({ zoom: 12, center: new Microsoft.Maps.Location(lat,lon) })
    map.entities.clear(); 

    var pushpin= new Microsoft.Maps.Pushpin(map.getCenter(), null);         
    map.entities.push(pushpin); 

    var index;
    var latlon = ["12.978955,77.574838", "12.981472,77.619214", "12.980332,77.617265", "13.011561,77.606354", "12.975496,77.556826", "12.97518,77.570991", "12.971599,77.594563", "12.985405,77.525386"];
    for (index = 0; index < latlon.length; index++) {
    var laton = latlon[index];
    pushpin.setLocation(new Microsoft.Maps.Location(laton)); 
    }
}  

【问题讨论】:

标签: javascript arrays bing-maps


【解决方案1】:

您必须为每个位置创建一个图钉,否则您只会一直移动相同的图钉。您还必须将字符串值解析为坐标解析(两个数字)。修改你的代码如下:

function showLoc()
{
    map = new Microsoft.Maps.Map(document.getElementById('myMap'), {credentials: bkey});
    map.setView({ zoom: 12, center: new Microsoft.Maps.Location(lat,lon) })
    map.entities.clear(); 

    var latlon = ["12.978955,77.574838", "12.981472,77.619214", "12.980332,77.617265", "13.011561,77.606354", "12.975496,77.556826", "12.97518,77.570991", "12.971599,77.594563", "12.985405,77.525386"];
    for (var i = 0; i < latlon.length; i++) {
        var vals = latlon[index].split(',');

        if(vals.length >= 2){
            var pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(parseFloat(vals[0]), parseFloat(vals[1])));         
            map.entities.push(pushpin); 
        }
    }
}

【讨论】:

    猜你喜欢
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多