没有出现带有多个标记的谷歌地图

时间:2014-04-17 10:20:17

标签: javascript google-maps razor

我想在谷歌地图上显示多个标记。我正在使用每个循环迭代包含纬度和经度的模型列表。但是调用函数并且它不显示地图。

代码:

      <div id="map_canvas" style="width: 80%; height: 80%">  </div>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
     </script>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?
       sensor=false"></script>
      <script type="text/javascript">
$(document).ready(function () {
    alert("working");
    var map;
    var locations = [];

    var options = {
        zoom: 14,
        center: new google.maps.LatLng(0, 0),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map($('#map_canvas')[0], options);


    @* This is the razor loop *@
    @foreach (var item in Model) {
    <text>
    locations.push(item.latitude, item.longitude);

    </text>
     }
    var i;
    for (i = 0; i <= locations.length; i++) {
        var latlng = new google.maps.LatLng(locations[i][0], locations[i][1]);

        var marker = new google.maps.Marker({
            position: latlng,
            map: map,
        });

    }

});
 </script>

2 个答案:

答案 0 :(得分:1)

这不起作用:

 var latlng = new google.maps.LatLng(markerlatLng);

markerlatLng已经是google.maps.LatLng,结果将是无效的LatLng。

使用markerlatLng作为center - options

的属性

此外:您应该将地图创建与循环分开。在循环之前设置中心之前创建地图:

map.setCenter(markerlatLng);

此外: 标记的地图属性必须为map而不是map_canvas

答案 1 :(得分:0)

你试试这个:

$(document).ready(function () {
var map;
var elevator;
var myOptions = {
    zoom: 1,
    center: new google.maps.LatLng(0, 0),
    mapTypeId: 'terrain'
};
map = new google.maps.Map($('#map_canvas')[0], myOptions);

var addresses = ['Norway', 'Africa', 'Asia','North America','South America'];

for (var x = 0; x < addresses.length; x++) {
    $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x]+'&sensor=false', null, function (data) {
        var p = data.results[0].geometry.location
        var latlng = new google.maps.LatLng(p.lat, p.lng);
        new google.maps.Marker({
            position: latlng,
            map: map
        });

    });
}

});

嵌入了Javascript代码:

http://jsfiddle.net/P2QhE/