问题标签 [fitbounds]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Google Maps: Get a variable value from listener
I'm trying to do it in good way, but I can't.. Please tell me where is the problem.
Variable latlng is empty outside the jsondata.addListener
..
I want to pass the latlng variable to:
But it doesn`t work..
This is my code:
javascript - Google Maps API v3 fitBounds() 似乎不适用于街道、地点等……仅适用于城市、地区、国家
案子:
我正在Google Map
使用V3 API
并让用户在使用该autocomplete
功能的输入字段中键入一些起点和终点。
如果用户键入原点,则会创建一个标记并将其放置在地图中。地图居中并缩放到该标记。
如果用户还键入了目的地,则会放置一个新标记,但使用该fitBounds()
方法调整地图以显示两个标记。此外,polyline
绘制 a 以“连接”两个标记。
如果用户键入新的起点或终点,标记和折线会随之更新。
用户是否开始输入目的地或起点并不重要,因为代码以“两种方式”工作。
问题:
如果我输入国家、地区或城市,我的代码似乎可以正常工作,但如果我输入其他内容,它就会失败。诸如地方(建筑物、商店、景点……)、街道……标记已正确放置,但地图未相应缩放,折线未绘制。
控制台显示没有错误。
如果我使用城市、地区或国家/地区更新起点或目的地,地图将按预期工作,并且折线正确显示,即使其他元素是街道或地点也是如此。
代码:
演示:
您可以在这个jsfiddle中重现这种罕见的行为
有效的示例输入数据:
- 慕尼黑
- 巴伐利亚
- 德国
- 曼哈顿
- 纽约
不起作用的示例输入数据:
- 莱赫尔,慕尼黑,德国
- 纽约市第五大道...
- 泰姬陵,阿格拉...
- 希思罗机场
- Zara Home,摄政街...
javascript - 谷歌地图 fitBounds 回调
我知道bounds_changed
如果边界发生变化会触发一个事件,但是我需要知道 fitBounds 何时完成(当边界发生变化或边界保持不变时)。
谷歌有某种容忍度,如果边界变化很小,它实际上不会改变边界/调用 bounds_changed。我需要知道这种情况何时发生。
我已经通过超时成功地做到了这一点,但是当 bounds_changed 需要超过 100 毫秒的时间才能触发时,它看起来很笨拙并且可能容易出现一些错误。
参见示例: http: //jsbin.com/sosurexuke/1/edit ?js,console,output
有更好的解决方案吗?
编辑:如果您认为只是检查 map.getBounds() 是否与您发送的 fitBounds() 相同,那么您会失望地知道拟合边界的结果通常甚至不接近您发送的边界. 我写了这个函数,认为这可能是可能的
2年后编辑:
bounds_changed
即使边界与当前边界相同,谷歌地图(3.32)的最新实验版本似乎也会被触发。
我将原始示例更新为版本 3.31,它仍然显示原始问题。
google-maps - 将地图设置在中心以便显示多个标记的问题
我正在使用离子框架。我创建了地图,多个标记和值来自服务器端。所有数据都正确出现,但我不知道为什么会出现此错误-
代码:angular.module('starter', ['ionic', 'ngCordova'])
google-maps - 如何使用 2 个标记和 InfoWindow 拟合边界地图
我需要在我的地图上放置几个标记,还需要在其中一个上显示信息窗口。所有这些东西都应该在地图视口内。我正在尝试使用此代码来获取 InfoWindow 左上角、右上角和 2 个标记的边界:
但看起来我的想法是错误的。我该怎么做呢 infoWindow 和我的 2 个标记总是在地图视口内。
leaflet - 传单 - Fitbounds 并保持居中
我正在将 Leaflet 与 Mapbox 一起使用,我想设置地图的视图,以便:
- 所有标记都可见
- 中心设置为特定点
使用 setView 和 fitbounds 分别处理每个点很容易,但我不知道如何同时拥有这两个点,因为 setView 更改了边界,而 fitBounds 更改了中心。一个解决方案可能是定义一个中心和一个缩放,但我怎么知道哪个缩放可以让我的所有标记都可见?
编辑
我实施了 IvanSanchez 建议的解决方案,它按预期工作:
leaflet - Leaflet - 切换图层时缩放/平移到图层范围
我正在制作公交路线图,并且有几条用户可以打开和关闭的路线。我想弄清楚如何缩放/平移,以便选择的路线(或路线)在选择时完全显示在屏幕上。(有些是初始缩放级别的屏幕外)。
到目前为止,这是魔术:
我已经尝试了 map.fitBounds 的多种组合,但似乎无法得到它。
另外,有没有办法给控制框添加标题和副标题?我想让控制看起来像:
Day
[]Route 10
[]Route 11
夜晚
[]Route 12... 等
javascript - Google Maps V3 API - 以从 xml 文件中提取的类别为中心
地图上的标记会根据选择的类别而变化。我希望他们自动以标记类别为中心,但我很难让它工作。
我在这里和其他地方发现的所有 fitbounds 示例遇到的问题是它们需要在 Javascript 中定义标记,而我的标记是从 XML 文件导入的。我不确定下一步该尝试什么。
剧本:
javascript - 让我的谷歌地图 fitBounds
我基本上想创建放大到与 SE-NW 角相对应的大小的地图。我尝试了很多变化,但无法让它发挥作用。我设法在我的脚本的一个版本上放置了两个标记,但无法使地图放大到标记的大小。我不需要标记,我只是在框外思考。我将在下面包含我的工作脚本,但希望能帮助您使 fitBounds 正常工作。我已经为此扎实工作了两天,但我不是程序员,我在这个网站上找到的很多解决方案和其他解决方案都不太有意义,或者它们没有解决我的确切问题。
google-maps-api-3 - 谷歌地图:全屏+ fitBounds 不适合边界
我有一张显示带有markerClusterer标记的地图。
在普通视图中一切正常,但在全屏模式下,单击集群会运行“fitBounds”,并且缩放未正确更改(缩小而不是放大)。
编码:
html:
当在 markerclusterer.js 的 'triggerClusterClick' 中运行 fitbounds 时,会发生缩小而不是放大:
有谁知道发生了什么?
PS:全屏更改是使用“fullscreenControl”(在选项地图中启用)进行的
有问题的样本:小提琴