Javascript GoogleMaps API中的GetTileUrl返回404错误
我正在网页上使用谷歌地图。加载页面时,我会在浏览器控制台上看到:Javascript GoogleMaps API中的GetTileUrl返回404错误,javascript,jquery,google-maps,http-status-code-404,openstreetmap,Javascript,Jquery,Google Maps,Http Status Code 404,Openstreetmap,我正在网页上使用谷歌地图。加载页面时,我会在浏览器控制台上看到: GET http://tile.openstreetmap.org/0/1/0.png 404 (Not Found) GET http://tile.openstreetmap.org/0/-1/0.png 404 (Not Found) GET http://tile.openstreetmap.org/0/2/0.png 404 (Not Found) GET http://tile.openstreetmap.org
GET http://tile.openstreetmap.org/0/1/0.png 404 (Not Found)
GET http://tile.openstreetmap.org/0/-1/0.png 404 (Not Found)
GET http://tile.openstreetmap.org/0/2/0.png 404 (Not Found)
GET http://tile.openstreetmap.org/0/-3/0.png 404 (Not Found)
GET http://tile.openstreetmap.org/0/-2/0.png 404 (Not Found)
GET http://tile.openstreetmap.org/0/-4/0.png 404 (Not Found)
GET http://tile.openstreetmap.org/0/3/0.png 404 (Not Found)
我试图调试它,当调试器到达GetTileUrl方法时,coord数组有时在X/Y中带有负值,所以,这就是为什么它生成错误的URL
有没有办法避免这个问题?我在地图初始化中添加我的JS代码
var映射;
风险经理;
var infowindow=new google.maps.infowindow();
函数初始化(){
var mylatng=new google.maps.LatLng(0,0);
map=new google.maps.map(document.getElementById(“map”){
中心:myLatlng,
缩放:12,
mapTypeId:“OSM”,
mapTypeControl:false,
街景控制:错误
});
map.mapTypes.set(“OSM”,新的google.maps.ImageMapType({
getTileUrl:函数(坐标、缩放){
返回“http://tile.openstreetmap.org/“+zoom+”/“+coord.x+”/“+coord.y+”.png”;
},
tileSize:new google.maps.Size(256256),
名称:“OpenStreetMap”,
最大缩放:18
}));
var marker0=new google.maps.Marker({map:map,position:new google.maps.LatLng(6.00945923805956,-77.05810546875),title:'Quindío'});
google.maps.event.addListener(marker0,'click',function(){infowindow.setContent('');infowindow.open(map,marker0);});
var marker1=new google.maps.Marker({map:map,position:new google.maps.LatLng(-4.188574,-69.93929),title:'Amazonas'});
google.maps.event.addListener(marker1,'click',function(){infowindow.setContent('');infowindow.open(map,marker1);});
var marker2=new google.maps.Marker({map:map,position:new google.maps.LatLng(5.5197222,-72.8875),title:'Boyacá'});
google.maps.event.addListener(marker2,'click',function(){infowindow.setContent(“”);infowindow.open(map,marker2);});
var marker3=new google.maps.Marker({map:map,position:new google.maps.LatLng(1.331667,-75.882222),title:'Caquetá'});
google.maps.event.addListener(marker3,'click',function(){infowindow.setContent('');infowindow.open(map,marker3);});
var marker4=new google.maps.Marker({map:map,position:new google.maps.LatLng(4.15,-73.65),title:'Meta'});
google.maps.event.addListener(marker4,'click',function(){infowindow.setContent(“”);infowindow.open(map,marker4);});
var marker5=new google.maps.Marker({map:map,position:new google.maps.LatLng(5.7933333,-75.4308333),title:'Antioquia'});
google.maps.event.addListener(marker5,'click',function(){infowindow.setContent('');infowindow.open(map,marker5);});
var marker6=new google.maps.Marker({map:map,position:new google.maps.LatLng(1.21,-77.26),title:'Nariño'});
google.maps.event.addListener(marker6,'click',function(){infowindow.setContent('');infowindow.open(map,marker6);});
var marker7=new google.maps.Marker({map:map,position:new google.maps.LatLng(6.62641376843295,-70.9881591796875),title:'Arauca'});
google.maps.event.addListener(marker7,'click',function(){infowindow.setContent('');infowindow.open(map,marker7);});
var marker8=new google.maps.Marker({map:map,position:new google.maps.LatLng(4.6,-74.0833333),title:'Cundinamarca'});
google.maps.event.addListener(marker8,'click',function(){infowindow.setContent('');infowindow.open(map,marker8);});
var marker9=new google.maps.Marker({map:map,position:new google.maps.LatLng(4.43,-75.22),title:'Tolima'});
google.maps.event.addListener(marker9,'click',function(){infowindow.setContent('');infowindow.open(map,marker9);});
var marker10=new google.maps.Marker({map:map,position:new google.maps.LatLng(7.1297222,-73.1258333),title:'Santander'});
google.maps.event.addListener(marker10,'click',function(){infowindow.setContent('');infowindow.open(map,marker10);});
var marker11=new google.maps.Marker({map:map,position:new google.maps.LatLng(3.4372222,-76.5225),title:'Valle Del Cauca'});
google.maps.event.addListener(marker11,'click',function(){infowindow.setContent('');infowindow.open(map,marker11);});
var marker12=new google.maps.Marker({map:map,position:new google.maps.LatLng(0,-76.1572265625),title:'Putumayo'});
google.maps.event.addListener(marker12,'click',function(){infowindow.setContent('');infowindow.open(map,marker12);});
var marker13=new google.maps.Marker({map:map,position:new google.maps.LatLng(5.35,-72.3833333),title:'Casanare'});
google.maps.event.addListener(marker13,'click',function(){infowindow.setContent('');infowindow.open(map,marker13);});
var marker14=new google.maps.Marker({map:map,position:new google.maps.LatLng(2.460181181021,-75.60791015625),title:'Huila'});
google.maps.event.addListener(marker14,'click',function(){infowindow.setContent('');infowindow.open(map,marker14);});
var marker15=new google.maps.Marker({map:map,position:new google.maps.LatLng(1.25,-70.21667),title:'Vaupes'});
google.maps.event.addListener(marker15,'click',function(){infowindow.setContent('');infowindow.open(map,marker15);});
var marker16=new google.maps.Marker({map:map,position:new google.maps.LatLng(6.184765,-67.488503),title:'Vichada'});
google.maps.event.addListener(marker16,'click',function(){infowindow.setContent('');infowindow.open(map,marker16);});
var latlngbounds=new google.maps.latlngbounds();
扩展(新的google.maps.LatLng(6.00945923805956,-77.05810546875));
latlngbounds.extend(新的google.maps.LatLng(-4.188574,-69.93929));
extend(新的google.maps.LatLng(5.5197222,-72.8875));
extend(新的google.maps.LatLng(1.331667,-75.882222));
扩展(新的google.maps.LatLng(4.15,-73.65));
extend(新的google.maps.LatLng(5.7933333,-75.4308333));
extend(新的google.maps.LatLng(1.21,-77.26));
extend(新的google.maps.LatLng(6.62641376843295,-70.9881591796875));
扩展(新的google.maps.LatLng(4.6,-74.0833333));
latlngbounds.extend(新的google.maps.LatLng(4.43
// Normalizes the coords that tiles repeat across the x axis (horizontally)
// like the standard Google map tiles.
function getNormalizedCoord(coord, zoom) {
var y = coord.y;
var x = coord.x;
// tile range in one direction range is dependent on zoom level
// 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc
var tileRange = 1 << zoom;
// don't repeat across y-axis (vertically)
if (y < 0 || y >= tileRange) {
return null;
}
// repeat across x-axis
if (x < 0 || x >= tileRange) {
x = (x % tileRange + tileRange) % tileRange;
}
return {
x: x,
y: y
};
}