繁体   English   中英

在Google Maps上放置标记的JavaScript错误

[英]JavaScript error in placing markers on Google Maps

我遇到了一个非常令人沮丧的错误,该错误更接近分辨率,但还不止于此。 我正在尝试根据Django模型中存储的经纬度长坐标将标记放置在Google Map上。

得益于一些见解,我不太熟悉的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});
    }

我不知道故事和故事中存储了什么,但是在创建var point ,需要使用两个参数构造LatLng ,例如(number1,number2)或(string1,string2),其中字符串代表数字。

如果故事是单个字符串,请说“ 39.39,20.21”,您只需要split(",")即可获得两个数字字符串。

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

var stories也重复纬度,难道不是经度吗​​?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM