Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何阻止谷歌地图api v3在北极上方或南极下方灰色区域的平移?_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何阻止谷歌地图api v3在北极上方或南极下方灰色区域的平移?

Javascript 如何阻止谷歌地图api v3在北极上方或南极下方灰色区域的平移?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,使用GoogleMapsV3JavaScriptAPI,我找不到阻止地图在北极或南极下方平移的方法。 作为此页面上嵌入地图的示例: 具有相同的行为,用世界视图缩小并向北平移,使视图处于完全灰色区域 如何防止像在官方网站上那样做?更新-以下答案看起来不再有效,我想这是因为谷歌地图API已经升级了。我将代码留在这里以供参考。 感谢geocodezip的评论,我修改了Mike Williams针对我的案例的解决方案 这是你的电话号码 相关代码部分: google.maps.event.addListe

使用GoogleMapsV3JavaScriptAPI,我找不到阻止地图在北极或南极下方平移的方法。 作为此页面上嵌入地图的示例: 具有相同的行为,用世界视图缩小并向北平移,使视图处于完全灰色区域


如何防止像在官方网站上那样做?

更新-以下答案看起来不再有效,我想这是因为谷歌地图API已经升级了。我将代码留在这里以供参考。

感谢geocodezip的评论,我修改了Mike Williams针对我的案例的解决方案

这是你的电话号码

相关代码部分:

google.maps.event.addListener(map, 'center_changed', function() {
    checkBounds(map);
});
// If the map position is out of range, move it back
function checkBounds(map) {

var latNorth = map.getBounds().getNorthEast().lat();
var latSouth = map.getBounds().getSouthWest().lat();
var newLat;

if(latNorth<85 && latSouth>-85)     /* in both side -> it's ok */
    return;
else {
    if(latNorth>85 && latSouth<-85)   /* out both side -> it's ok */
        return;
    else {
        if(latNorth>85)   
            newLat =  map.getCenter().lat() - (latNorth-85);   /* too north, centering */
        if(latSouth<-85) 
            newLat =  map.getCenter().lat() - (latSouth+85);   /* too south, centering */
    }   
}
if(newLat) {
    var newCenter= new google.maps.LatLng( newLat ,map.getCenter().lng() );
    map.setCenter(newCenter);
    }   
}
google.maps.event.addListener(映射,'center\u changed',函数(){
检查边界(地图);
});
//如果地图位置超出范围,请将其向后移动
函数检查边界(map){
var latNorth=map.getBounds().getNorthEast().lat();
var latSouth=map.getBounds().getSouthWest().lat();
var newLat;
如果(latNorth-85)/*在两侧->就可以了*/
回来
否则{
如果(纬度北>85&&纬度南,则可以*/
回来
否则{
如果(纬度>85)
newLat=map.getCenter().lat()-(latNorth-85);/*太北,居中*/

如果(latSouth更新-以下答案看起来不再有效,我想这是因为谷歌地图API已经升级。我将代码留在这里供参考。

感谢geocodezip的评论,我修改了Mike Williams针对我的案例的解决方案

这是你的电话号码

相关代码部分:

google.maps.event.addListener(map, 'center_changed', function() {
    checkBounds(map);
});
// If the map position is out of range, move it back
function checkBounds(map) {

var latNorth = map.getBounds().getNorthEast().lat();
var latSouth = map.getBounds().getSouthWest().lat();
var newLat;

if(latNorth<85 && latSouth>-85)     /* in both side -> it's ok */
    return;
else {
    if(latNorth>85 && latSouth<-85)   /* out both side -> it's ok */
        return;
    else {
        if(latNorth>85)   
            newLat =  map.getCenter().lat() - (latNorth-85);   /* too north, centering */
        if(latSouth<-85) 
            newLat =  map.getCenter().lat() - (latSouth+85);   /* too south, centering */
    }   
}
if(newLat) {
    var newCenter= new google.maps.LatLng( newLat ,map.getCenter().lng() );
    map.setCenter(newCenter);
    }   
}
google.maps.event.addListener(映射,'center\u changed',函数(){
检查边界(地图);
});
//如果地图位置超出范围,请将其向后移动
函数检查边界(map){
var latNorth=map.getBounds().getNorthEast().lat();
var latSouth=map.getBounds().getSouthWest().lat();
var newLat;
如果(latNorth-85)/*在两侧->就可以了*/
回来
否则{
如果(纬度北>85&&纬度南,则可以*/
回来
否则{
如果(纬度>85)
newLat=map.getCenter().lat()-(latNorth-85);/*太北,居中*/

如果(latSouth使用属性“restriction”为我工作:


使用“限制”属性为我工作:


请参阅自。Google Maps Javascript API v2已弃用(并已关闭),但相同的概念适用于v3。请参阅自。Google Maps Javascript API v2已弃用(并已关闭)但同样的概念也适用于v3。对于那些也想知道为什么是85度的人,请看。Poster试图将视口限制在85度以内。这不起作用(尝试了上面的小提琴)。从日志中,我猜测Google停止传递真实值(例如,-100等),而是传递模数(或类似值)。此外,这个问题似乎发生在生产中;即,大公司也有同样的问题(如foodora)。但是,没有这个问题。对于那些也想知道为什么是85度的人,请参见。海报试图将视口限制在85度以内。这不起作用(尝试了上面的小提琴).从日志中,我猜测谷歌停止传递真实值(例如,-100等),而是传递模数(或类似值)。此外,这个问题似乎发生在生产中;即,大公司也有同样的问题(例如:foodora)。但是,没有问题。尝试了此操作,但它是水平平移,而垂直平移很好。干燥此操作,但它是水平平移,而垂直平移很好