Javascript Google Maps Ajax多标记Json

Javascript Google Maps Ajax多标记Json,javascript,ajax,google-maps,google-maps-api-3,google-maps-markers,Javascript,Ajax,Google Maps,Google Maps Api 3,Google Maps Markers,我有以下几点意见: 我收到一个错误:无法分配给0的只读属性“\uuuue3” 我以前有一个for循环,在for循环之后调用函数,但是jshint不接受它。所以现在我使用的是Ajax,但我被卡住了。我可以返回控制台中的对象以及第一个信息框内容(请参见控制台),然后我会得到一个错误 js如下:(任何提示、技巧等都将不胜感激) (函数(){ renderGoogleMap(); 函数renderGoogleMap(){ var start_point=new google.maps.LatLng(0,

我有以下几点意见:

我收到一个错误:无法分配给0的只读属性“\uuuue3”

我以前有一个for循环,在for循环之后调用函数,但是jshint不接受它。所以现在我使用的是Ajax,但我被卡住了。我可以返回控制台中的对象以及第一个信息框内容(请参见控制台),然后我会得到一个错误

js如下:(任何提示、技巧等都将不胜感激)

(函数(){
renderGoogleMap();
函数renderGoogleMap(){
var start_point=new google.maps.LatLng(0,0);
//创建新地图
var map=new google.maps.map(document.getElementById(“位置图”){
中心:起点,
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
//创建将由所有标记重复使用的全局infoWindow对象
var infoWindow=new google.maps.infoWindow();
函数集合标记点(映射、标记){
var bounds=new google.maps.LatLngBounds();
//在JSON数据中循环
//创建闭包以保留正确的数据,请注意我是如何将循环中的当前数据传递到闭包中的(标记,数据)
$.ajax({
键入:“获取”,
网址:'https://raw.githubusercontent.com/roryheaney/jsonexample/master/locatoins.json',
数据类型:“json”,
成功:功能(数据){
控制台日志(数据);
如果(data.length!==0){
var latLng=新的google.maps.latLng(data.lat,data.lng);
//创建标记并将其放在地图上
var marker=new google.maps.marker({
位置:latLng,
地图:地图,
标题:data.title
});
$.each(数据、函数(标记、数据){
var windowContent=''+data.title+''+
“”+data.description+”

”; console.log(windowContent); //将单击事件附加到当前标记 infobox=新的infobox({ 内容:infoWindow.setContent(windowContent), 是的, pixelOffset:new google.maps.Size(-160,-45) }); google.maps.event.addListener(标记,'click',函数(){ //打开此地图的信息框 打开(地图、标记); infobox.setContent(windowContent); map.panTo(marker.getPosition()); show(); }); google.maps.event.addListener(映射,'click',函数(){ infobox.setMap(空); }); }); } }, 错误:函数(数据){ //警报(“请刷新页面并重试”); log('请刷新页面并重试'); } }); //结束标记数据 //extend(marker.getPosition()); //通过json结束循环 地图设置中心(起点); 映射边界(bounds); } 设置标记点(地图); } })();
更改列表:

1.Google Maps API包含它自己的事件,该事件在页面加载后触发,因此我替换了以下行:

(function () {
    renderGoogleMap();

    //...


})();

2.增加了标记lat/lng界限的初始化

3.还有一些小问题

代码片段:

函数renderGoogleMap(){
var start_point=new google.maps.LatLng(0,0);
//创建新地图
var map=new google.maps.map(document.getElementById(“位置图”){
中心:起点,
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
//创建将由所有标记重复使用的全局infoWindow对象
var infoWindow=new google.maps.infoWindow();
函数集合标记点(映射、标记){
var bounds=new google.maps.LatLngBounds();
$.ajax({
键入:“获取”,
网址:'https://raw.githubusercontent.com/roryheaney/jsonexample/master/locatoins.json',
数据类型:“json”,
成功:功能(数据){
如果(data.length!==0){
$.each(数据、函数(标记、数据){
var latLng=新的google.maps.latLng(data.lat,data.lng);
边界扩展(latLng);
//创建标记并将其放在地图上
var marker=new google.maps.marker({
位置:latLng,
地图:地图,
标题:data.title
});
var windowContent=''+data.title+''+
“”+data.description+”

”; //将单击事件附加到当前标记 infobox=新的infobox({ 内容:infoWindow.setContent(windowContent), 是的, pixelOffset:new google.maps.Size(-160,-45) }); google.maps.event.addListener(标记'click',函数(){ //打开此地图的信息框 打开(地图、标记); infobox.setContent(windowContent); map.panTo(marker.getPosition()); show(); }); google.maps.event.addListener(map,'cli
(function () {
    renderGoogleMap();

    //...


})();
function renderGoogleMap() {
    //...
  }

google.maps.event.addDomListener(window, 'load', renderGoogleMap);