2

誰でもこの問題を解決できますか? サーバーからデータを取得し、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
        });
    }
}


よろしくお願いします ジョージ

4

1 に答える 1

0

使用した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
        });
    }
于 2012-12-19T10:12:13.773 に答える