0

解決に近い非常に苛立たしいエラーが発生しましたが、完全にはありません。Djangoモデルで作成された緯度と経度の座標に基づいてGoogleマップにマーカーを配置しようとしています。

いくつかの洞察のおかげで、私があまりよく知らないAJAXが、モデルからこれらの座標を取得し、これを使用してマーカーをマップに配置する方法であるように見えます。結果からソースコードを見ると、座標が取得されていますが、Firebugを介してエラーが発生しています。

syntax error
[Break On This Error]   

function loadMarkers(stories):

/report/all/ (line 1172, col 29)

これを引き起こしている可能性のあるものと、考えられる解決策についての洞察を歓迎します。参考までに、これは開発モードであり、すべての座標が同じ場所にあるため、多すぎる可能性があります。「loadMarkers」関数で地図が表示されなくなりました。

コードは次のとおりです。

<script>
function mainGeo()
    {
         if (navigator.geolocation) 
            {
              navigator.geolocation.getCurrentPosition( mainMap, error, {maximumAge: 30000, timeout: 10000, enableHighAccuracy: true} );
        }
        else
        {
              alert("Sorry, but it looks like your browser does not support geolocation.");
        }
    }




var map;



 function mainMap(position)
 {
       // Define the coordinates as a Google Maps LatLng Object
       var coords = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

       // Prepare the map options
       var mapOptions =
      {
                  zoom: 15,
                  center: coords,
                  mapTypeControl: false,
                  navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
                  mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        // Create the map, and place it in the map_canvas div
        map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

        // Place the initial marker
        var marker = new google.maps.Marker({
                  position: coords,
                  map: map,
                  title: "Your current location!"
        });
    }


function error() {
               alert("You have refused to display your location. You will not be able to submit stories.");
        }

mainGeo();

var stories = [{% for story in stories %}
                {{story.latitude}},{{story.latitude}}, {% endfor %}];


    loadMarkers(stories);

function loadMarkers(stories):
for (var s in stories) {
    var story = story[s];
    var point = new google.maps.LatLng(story[s]);
    var marker = new google.maps.Marker({position: point, map: map});
}

編集:コードを刷新しましたが、同じエラーを取得します

var stories = [{% for story in stories %}
                ({{story.latitude}},{{story.longitude}}) {% endfor %}];


    loadMarkers(stories);

function loadMarkers(stories):
    for (var s in stories) {
        var story = story[s]
        var point = new google.maps.LatLng(story.latitude, story.longitude);
        var marker = new google.maps.Marker({position: point, map: map});
    }
4

1 に答える 1

0

story と stories に何が格納されているかはわかりませんが、 を作成するときはvar pointLatLng(number1, number2) または (string1, string2) のように、文字列が数字を表す 2 つの引数で構成する必要があります。

ストーリーが 1 つの文字列の場合、たとえば "39.39, 20.21"のようsplit(",")に、2 つの数値文字列を取得する必要があります。

    myString = "40.7, -70.4";
    myStringValues = myString.split(",");
    var point = new google.maps.LatLng(myStringValues[0], myStringValues[1]);

また、緯度は で繰り返されvar storiesますが、経度ではありませんか?

于 2012-06-01T20:17:44.150 に答える