Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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 如何将夏威夷和阿拉斯加迁移到北美附近谷歌地图_Javascript_Jquery_Asp.net Mvc_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何将夏威夷和阿拉斯加迁移到北美附近谷歌地图

Javascript 如何将夏威夷和阿拉斯加迁移到北美附近谷歌地图,javascript,jquery,asp.net-mvc,google-maps,google-maps-api-3,Javascript,Jquery,Asp.net Mvc,Google Maps,Google Maps Api 3,我的情况是,我需要将夏威夷和阿拉斯加包括在Google地图中,但我添加了一个jquery,以防止地图被拖出美国边界 有可能把夏威夷和阿拉斯加搬到北美附近吗??谢谢 这是一个防止地图拖到地图外的方法 <script type="text/javascript"> var minZoomLevel = 5; var map = new google.maps.Map(document.getElementById('map'), { zoom:

我的情况是,我需要将夏威夷和阿拉斯加包括在Google地图中,但我添加了一个jquery,以防止地图被拖出美国边界

有可能把夏威夷和阿拉斯加搬到北美附近吗??谢谢

这是一个防止地图拖到地图外的方法

 <script type="text/javascript">
     var minZoomLevel = 5;

     var map = new google.maps.Map(document.getElementById('map'), {
         zoom: minZoomLevel,
         center: new google.maps.LatLng(38.50, -90.50),
         mapTypeId: google.maps.MapTypeId.ROADMAP
     });

     // Bounds for North America
     var strictBounds = new google.maps.LatLngBounds(
     new google.maps.LatLng(28.70, -127.50),
     new google.maps.LatLng(48.85, -55.90)
   );

     // Listen for the dragend event
     google.maps.event.addListener(map, 'dragend', function () {
         if (strictBounds.contains(map.getCenter())) return;

         // We're out of bounds - Move the map back within the bounds

         var c = map.getCenter(),
         x = c.lng(),
         y = c.lat(),
         maxX = strictBounds.getNorthEast().lng(),
         maxY = strictBounds.getNorthEast().lat(),
         minX = strictBounds.getSouthWest().lng(),
         minY = strictBounds.getSouthWest().lat();

         if (x < minX) x = minX;
         if (x > maxX) x = maxX;
         if (y < minY) y = minY;
         if (y > maxY) y = maxY;

         map.setCenter(new google.maps.LatLng(y, x));
     });

     // Limit the zoom level
     google.maps.event.addListener(map, 'zoom_changed', function () {
         if (map.getZoom() < minZoomLevel) map.setZoom(minZoomLevel);
     });

</script>  

var minZoomLevel=5;
var map=new google.maps.map(document.getElementById('map'){
zoom:minZoomLevel,
中心:新google.maps.LatLng(38.50,-90.50),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
//前往北美的边界
var strictBounds=new google.maps.LatLngBounds(
新google.maps.LatLng(28.70,-127.50),
新google.maps.LatLng(48.85,-55.90)
);
//收听dragend事件
google.maps.event.addListener(映射'dragend',函数(){
if(strictBounds.contains(map.getCenter())返回;
//我们超出边界-将地图移回边界内
var c=map.getCenter(),
x=c.lng(),
y=c.lat(),
maxX=strictBounds.getNorthEast().lng(),
maxY=strictBounds.getNorthEast().lat(),
minX=strictBounds.getSouthWest().lng(),
minY=strictBounds.getsoutwest().lat();
如果(xmaxX)x=maxX;
如果(ymaxY)y=maxY;
map.setCenter(新的google.maps.LatLng(y,x));
});
//限制缩放级别
google.maps.event.addListener(映射'zoom_changed',函数(){
if(map.getZoom()
您可以显示多张地图。图中显示的是美国主地图,以及两张阿拉斯加和夏威夷的小地图。

下面的代码生成了它

<script type="text/javascript">
    function initialize()
{
    var USA = new google.maps.LatLng(38.50, -90.50);
    var ALASKA = new google.maps.LatLng(64.0000, -150.0000);
    var HAWAII = new google.maps.LatLng(21.3114, -157.7964);

    var myOptions =
    {
        zoom: 4,
        center: USA,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var myOptions2 =
    {
        zoom: 3,
        center: ALASKA,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var myOptions3 =
    {
        zoom: 6,
        center: HAWAII ,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var map2 = new google.maps.Map(document.getElementById("map_canvas_2"), myOptions2);
    var map3 = new google.maps.Map(document.getElementById("map_canvas_3"), myOptions3);
    google.maps.event.addListener(map, "zoom_changed", function()
    {
        zoomLevel = map.getZoom();
        map2.setZoom(zoomLevel);
        map3.setZoom(zoomLevel);
    })
    google.maps.event.addListener(map, "drag", function()
    {
        centre = map.getCenter();
        map2.setCenter(centre);
        map3.setCenter(centre);
    })
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="top: 5px; left: 30px; width:800px; height:600px; float: left"></div>
<div id="map_canvas_2" style="top: 5px; left: 75px; width:300px; height:300px"></div>
<div id="map_canvas_3" style="top: 15px; left: 75px; width:300px; height:300px"></div>
</body>

函数初始化()
{
var USA=新的google.maps.LatLng(38.50,-90.50);
var阿拉斯加=新的google.maps.LatLng(64.0000,-150.0000);
var HAWAII=new google.maps.LatLng(21.3114,-157.7964);
变异性肌肽=
{
缩放:4,
中心:美国,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
变型肌肽2=
{
缩放:3,
中心:阿拉斯加,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
变型肌肽3=
{
缩放:6,
中心:夏威夷,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var map2=new google.maps.Map(document.getElementById(“Map\u canvas\u 2”),myOptions2);
var map3=新的google.maps.Map(document.getElementById(“Map\u canvas\u 3”),myOptions3);
google.maps.event.addListener(映射,“zoom_changed”,函数()
{
zoomLevel=map.getZoom();
map2.setZoom(zoomLevel);
map3.setZoom(zoomLevel);
})
google.maps.event.addListener(映射,“拖动”,函数()
{
center=map.getCenter();
地图2.设置中心(中心);
地图3.设置中心(中心);
})
}

有问题吗?我想你需要一张自定义地图(自定义瓷砖),把夏威夷和阿拉斯加放在你想要的地方。@geocodezip能把阿拉斯加和夏威夷从北美移近一点吗?Enrique,你想要的通常被称为“插图”。2008年(Google maps v2?)也提出了同样的问题,建议解决方案是“插入另一个地图作为自定义控件”。不幸的是,一个指向演示的链接被破坏了。@beetrootbeetroot这就是我计划的:(谢谢)谷歌搜索“谷歌地图插图”。其他一些结果看起来很有希望。