吐出字符串并将它们设置为映射为标记

时间:2013-05-13 07:05:57

标签: javascript for-loop map bing marker

我尝试在地图上创建标记 我正在使用bing Map
我有两个逗号分隔的字符串。
两个不同的变量。

var Region = "Pune,Kolkata";
var Activity = "Cricket,One Day";

我正在尝试这个java-Script ajax: -

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="http://ecn.dev.virtualearth.net/MapControl/mapcontrol.ashx?v=6.3c">
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
    var Region = 'Pune,Kolkata';
    var cntry_code= 'IN';
    var Activity = "Cricket,One Day"
    var map = null;
    function GetMap() {
        map = new VEMap('myMap');            
        map.LoadMap();
        $(document).ready(function(){

            var array_region = Region.split(',');
            var array_activtiy= Activity.split(',');
            for(var item_region in array_region)
            for (var item_activity in array_activtiy)
            {
            $.ajax({
              url: "http://services.gisgraphy.com//geocoding/geocode?address="+array_region[item_region]+"&country="+cntry_code+"&format=json",
             async: false,
              dataType:'jsonp',
              success: function(data){
                    lat = data.result[0].lat;
                    lng = data.result[0].lng;
                alert(lat);
                alert(lng);
                map.LoadMap(new VELatLong(lat,lng));
                var pinpoint = map.GetCenter();      
                shape = new VEShape(VEShapeType.Pushpin, pinpoint);
                shape.SetTitle("Activity Name:- ");
                shape.SetDescription(array_activtiy[item_activity]+","+array_region[item_region]);
                map.AddShape(shape);
                }
                });
                                alert(array_region[item_region]);

    }
        });
        }
</script>
    </head>
    <body onload="GetMap();">
    <div style="width:630px; background-color: #E0E0E0; height: 500px; border: 1px solid black">
        <div id='myMap' style="position:relative; width:600px; height:400px; margin-left:15px"></div>
    </div>
</body>
</html>

尝试用逗号分割字符串。
并将其传递给ajax网址 并获得了lat和lng 使用这个lat和lng。
将那些地方设置为活动 工作正常。
只是一个小问题,它添加最后一个位置和最后一个活动作为标记 我认为我的for循环中存在问题 请一些人查看我的查询。
谢谢。

1 个答案:

答案 0 :(得分:0)

您不应该将for(var item_region in array_region)构造与数组一起使用。用以下内容替换该行:

for (var item_region, i = 0; i < array_region.length; i++)
  item_region = array_region[i];

您需要在以下行中进行类似的更改 - 左侧作为练习