当前位置: 首页 > 知识库问答 >
问题:

谷歌地图API V3方法fitBounds()

董哲
2023-03-14

我有这段代码来渲染地图。

function initialize() {
    var myOptions = {
      center: new google.maps.LatLng(45.4555729, 9.169236),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP,

panControl: true,
mapTypeControl: false,
panControlOptions: {
            position: google.maps.ControlPosition.RIGHT_CENTER
        },
zoomControl: true,
zoomControlOptions: {
    style: google.maps.ZoomControlStyle.LARGE,
    position: google.maps.ControlPosition.RIGHT_CENTER
},
scaleControl: false,
streetViewControl: false,
streetViewControlOptions: {
    position: google.maps.ControlPosition.RIGHT_CENTER
            }
        };
    var map = new google.maps.Map(document.getElementById("mapCanvas"),
        myOptions);



var Item_1 = new google.maps.LatLng(45.5983128 ,8.9172776);

var myPlace = new google.maps.LatLng(45.4555729, 9.169236);

var marker = new google.maps.Marker({
    position: Item_1, 
    map: map});

var marker = new google.maps.Marker({
    position: myPlace, 
    map: map});

var bounds = new google.maps.LatLngBounds(myPlace, Item_1);
map.fitBounds(bounds);

    }

即使两个点距离为25 km,我也会得到以下结果:

而我想渲染更高级别的缩放。

这样地

我使用fitBounds()方法

    var bounds = new google.maps.LatLngBounds(myPlace, Item_1);
    map.fitBounds(bounds);

谢谢你的支持

共有3个答案

云瑞
2023-03-14

我有你描述的同样的问题,尽管我正在建立我的LatLngBounds,正如上面提到的。问题是事情是异步的,在错误的时间调用map.fitBounds()可能会导致类似于Q的结果。我发现最好的方法是将调用放在一个空闲处理程序中,如下所示:

google.maps.event.addListenerOnce(map, 'idle', function() {
    map.fitBounds(markerBounds);
});
戚令秋
2023-03-14

必须以(西南,东北)顺序定义点。你的分数不是按照那个顺序。

一般的解决方法是扩展一个空边界,特别是如果您不知道点的顺序肯定是这样的:

var bounds = new google.maps.LatLngBounds();
bounds.extend(myPlace);
bounds.extend(Item_1);
map.fitBounds(bounds);

API将对边界进行排序。

暴才俊
2023-03-14

这是因为LatLngBounds()不将两个任意点作为参数,而是将SW和NE点作为参数

对空边界对象使用.extend()方法

var bounds = new google.maps.LatLngBounds();
bounds.extend(myPlace);
bounds.extend(Item_1);
map.fitBounds(bounds);

演示http://jsfiddle.net/gaby/22qte/

 类似资料:
  • 我对谷歌地图方向服务(api v3)有一个问题。我不知道如何指定起始和目标字符串。例如,对于请求: http://maps.googleapis.com/maps/api/js?sensor=false 或者 http://maps.googleapis.com/maps/api/directions/xml?sensor=false 服务器的响应为:未找到,即未找到路由, 但是,如果我将字符¨改

  • 在我的Android应用程序中,当单击地图上的标记时,我的地图屏幕会显示方向和谷歌地图。我在应用程序中使用以下内容。 XML: 在代码中: 我已经用蓝色标记了方向和谷歌地图图标。请查看我的地图屏幕的图像。 如何从地图片段中隐藏方向和谷歌地图图标?

  • 所以我看到了一个特殊的例外,我敢肯定的是谷歌地图的绘图代码。 我有一个片段,在那里我以编程方式添加了一个支持地图片段,然后我在其中操纵谷歌地图实例。 这是stacktrace: 我无法可靠地复制它(尽管这种情况经常发生),我已经查看了ReadWriteDirectByteBuffer和ShortToByteBufferAdapter,但没有任何东西突然出现在我面前。 有什么想法吗?

  • 我认为问题是我需要添加构建提示。我可以找到在哪里添加他们,但我不确定他们应该是什么格式。我也不知道要补充什么。我想我发现了一个帖子,说我需要添加Android.xapplication=Android:value=“Your Key”/>Android.xPermissions= 但我不确定构建提示条目表单中的格式是什么

  •        LSV默认的对谷歌影像进行了加载,如果需要加载其他的谷歌地图数据,可以通过LSV中直接点击即可加载。