jQuery循环在谷歌地图上显示多个标记



谁能帮我解决这个问题,我正在从服务器获取数据并执行foreach循环以使用gmap3获取Google地图中标记的所有坐标。

问题是它在地图上只显示 1 个标记,我尝试使用 jquery/javascript 'for' 循环来显示数据,但无法弄清楚如何做到这一点。

任何帮助将不胜感激,我的代码在下面,减去jquery/javascript循环。

<script type="text/javascript">
    var options = { center: [], zoom: 0 };
    var value = { latLng: [] };
    @foreach (var item in Model)
        { 
        <text>
            options.center.push(@item.DisplayLatLonInMap);
            value.latLng.push(@item.DisplayLatLonInMap);
        </text> 
    }
    $("#WeatherMapLocation").gmap3({
        //defaults: { 
        //    classes: { 
        //        Marker: MarkerWithLabel 
        //    } 
        //}, 
        //{ 
        map: { options: options },
        marker: { values: [value],},
    });
</script>

/===

====================================

将代码更改为下面的代码。 但仍然没有运气,我不太擅长jquery等

<script type="text/javascript">
$(document).ready(initialize);
var map;

var options = { center: [], zoom: 0 };
var value = { latLng: [] };
@foreach (var item in Model)
    { 
     <text>
options.center.push(@item.DisplayLatLonInMap);
value.latLng.push(@item.DisplayLatLonInMap);
</text> 
    }
function initialize() {
    var latlng = new google.maps.LatLng(42.354183,-71.065063);
    var options = {
        zoom: 0,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map($('#WeatherMapLocation')[0], options);
    for( i = 0; i < value.length; i++) {
        var latLng = new google.maps.LatLng(value);
        var marker = new google.maps.Marker({
            position: latLng,
            map: map
        });
    }
}


提前致谢乔治

我不清楚你使用的jQuery语法。在 for 循环中,尚未指定数组位置。看看这是否是问题所在。

for( i = 0; i < value.length; i++) {
        var latLng = new google.maps.LatLng(value[i]); 
        var marker = new google.maps.Marker({
            position: latLng,
            map: map
        });
    }

最新更新