0

我正在尝试在地图上创建标记。
我正在使用 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 url。
并得到了纬度和经度。
使用这个纬度和经度。
设置那些地方有活动。
它的工作正常。
只是小问题它添加最后一个地方和最后一个活动作为标记。
我认为我的 for 循环有问题。
请有人检查一下我的这个查询。
谢谢。

4

1 回答 1

0

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

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

您将需要在以下行中进行类似的更改 - 留作练习

于 2013-05-13T09:03:53.850 回答