【问题标题】:jquery loop display muliple markers on google mapjquery循环在谷歌地图上显示多个标记
【发布时间】:2012-12-19 09:24:12
【问题描述】:

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

问题是它只在地图上显示 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
        });
    }
}


提前致谢 乔治

【问题讨论】:

标签: javascript jquery google-maps


【解决方案1】:

我不清楚您使用的 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
        });
    }

【讨论】:

  • 我不清楚您如何将 latlng 添加到值数组中。在进入循环之前,您是否看到正确添加到数组中的值?您可以使用FIREBUG 来调试和检查您的代码。
  • 嗨,Cdeez,现在不确定自己,已经尝试解决这个问题 2 天了,我头晕目眩,我什至让自己感到困惑
  • 您的要求是什么?也许我可以给你一个简单的解决方案。
  • 嗨我只需要从 var value = { latLng: [] };其中包含纬度和对数并在地图上显示标记
  • 所以你基本上想要一个包含 latlng 的数组,然后使用这个数组来放置标记。是吗?
猜你喜欢
  • 2012-04-02
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
相关资源
最近更新 更多