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