0

私はこのコードをやった

  • float(地図上の点)の一覧を表示したい
  • しかし、最初のポイントだけが表示され、他のポイントは表示されませんでした。ポイント間のパスも隠されていますが、その理由はわかりません。

    @model IList @{ Layout = "~/Views/Shared/_Lay2.cshtml";} var culture = System.Globalization.CultureInfo.GetCultureInfo("en-US");}

    @for (int marker=2;marker<@Model.Count; marker++) 
    {
    <script type="text/javascript">
        alert(@marker);
        var myOptions = {zoom: 30, center: myLatLng, mapTypeId: google.maps.MapTypeId.TERRAIN };
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        var flightPlanCoordinates = [
             new google.maps.LatLng(@Model[marker].ToString(culture), @Model[marker + 1].ToString(culture)),];
        var flightmarker = new google.maps.Marker({
                position: new google.maps.LatLng(@Model[marker].ToString(culture), @Model[marker + 1].ToString(culture)),
                map: map,
                title: " denden" });var flightPath = new google.maps.Polyline({
                path: flightPlanCoordinates,
                strokeColor: "#FF0000",
                strokeOpacity: 1.0,
                strokeWeight: 2
            });
        flightPath.setMap(map);
    </script>
    
    marker++; 
    
    }
    

助言がありますか?

4

1 に答える 1

0

ループを繰り返すたびにマップを再作成しているようです。多分このようなことを試してみてください:

@model IList<float>
  @{ Layout = "~/Views/Shared/_Lay2.cshtml";
 var culture = System.Globalization.CultureInfo.GetCultureInfo("en-US");}
 <body  onload="initialize(@Model[0].ToString(culture), @Model[1].ToString(culture))">
 <table style="width: 100%; height: 70%"> <tr>
    <td style="width: 100%"><div id="map_canvas" style="width: 100%; height: 500px;"></div></td>
    <script type="text/javascript">
     var myOptions = {zoom: 30,
                center: myLatLng,
                mapTypeId: google.maps.MapTypeId.TERRAIN };
            var map = new google.maps.Map(document.getElementById("map_canvas"),
             myOptions);
            @for (int marker=2;marker<@Model.Count; marker += 2) {
            var flightPlanCoordinates = [
             new google.maps.LatLng(@Model[marker].ToString(culture), @Model[marker + 1].ToString(culture)),];
            var flightmarker = new google.maps.Marker({
                position: new google.maps.LatLng(@Model[marker].ToString(culture), @Model[marker + 1].ToString(culture)),
                map: map,
                title: " denden" });var flightPath = new google.maps.Polyline({
                path: flightPlanCoordinates,
                strokeColor: "#FF0000",
                strokeOpacity: 1.0,
                strokeWeight: 2
            });
            flightPath.setMap(map);
            }
        </script>
    </tr>
    </table>
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
于 2012-09-16T19:57:46.810 に答える