Google maps 谷歌地图API V3自定义控件位置

Google maps 谷歌地图API V3自定义控件位置,google-maps,Google Maps,我已经读过关于在地图上定位控件的文档(TOP,TOP\u LEFT,等等),但是有没有办法自定义位置?例如:left:20px;顶部:200px; 我只想在左上角有我的标志和缩放控制的权利下的标志。 以及如何删除导航控件中的平移控件?我希望只有默认样式的缩放控件(不最小化)。 谢谢。您可以为您的徽标创建自定义控件,并将其添加到地图中进行定位。不能直接在常量之外设置控件的位置,但可以使用控件div上的填充来偏移该位置 尽管这个问题已经很老了,但它似乎仍然吸引了人们的兴趣,因此,以下是我的解决方案:

我已经读过关于在地图上定位控件的文档(
TOP
TOP\u LEFT
,等等),但是有没有办法自定义位置?例如:
left:20px;顶部:200px
; 我只想在左上角有我的标志和缩放控制的权利下的标志。 以及如何删除导航控件中的平移控件?我希望只有默认样式的缩放控件(不最小化)。
谢谢。

您可以为您的徽标创建自定义控件,并将其添加到地图中进行定位。不能直接在常量之外设置控件的位置,但可以使用控件div上的填充来偏移该位置


尽管这个问题已经很老了,但它似乎仍然吸引了人们的兴趣,因此,以下是我的解决方案:

包装控制! 首先,我们必须找到container元素,Google将控件放在这里。这取决于要在地图上使用的控件。谷歌没有为这些容器使用唯一的ID。但是所有控件都有一个共同的类“gmnoprint”。所以只要用“gmnoprint”计算元素就可以了。假设我们只想使用“ZoomControlStyle.SMALL”控件。它总是带有“gmnoprint”的最后一个元素

现在,我们可以简单地设置元素的样式-对吗?不会。只要你缩放地图或调整地图大小,谷歌就会重置控件的样式。运气不好,但是:我们可以在控件周围包装一个容器并设置此容器的样式

使用jQuery,这是一项非常简单的任务:

$('div.gmnoprint').last().parent().wrap(“”);
我们只需确保在尝试包装控件时该控件已完全加载。我想它不是完全防弹的,但是使用MapsEventListener“tilesloaded”做得很好:

google.maps.event.addDomListener(映射'tilesloaded',函数(){
//我们只想包一次!
如果($('#newPos')。长度==0){
$('div.gmnoprint').last().parent().wrap(“”);
}
});
退房(不工作,见2016年2月更新)

当然,如果你不喜欢最初的闪烁,想要一个更可靠的版本,你可以做各种改进,如fadeIn等:(不起作用,请参阅2016年2月更新)

所以,我希望你们中的一些人会觉得这很有用-玩得开心

更新:使用此方法,您还可以定位任何其他控件(例如的控件)。您只需确保选择正确的容器!这是一个经过修改的示例:(不知何故仍在工作)

更新:截至2016年2月,谷歌似乎已经改变了地图控件的位置。这并没有破坏我的解决方案。只是需要一些调整。以下是最新的小提琴:

简单:
花式:

套装

panControl : false,

在您设置的ZoomControl选项中,它非常简单,只需将其添加到css文件中即可

div.gmnoprint { padding-top: 50px; }

它将移动控制50px下来没有黑客或任何东西

这是处理此ATM的唯一可靠方法。有关此ATM的完整工作示例,请参阅(搜索地图)。为了让我的自定义控件向下而不是向右移动标准导航控件,我必须将ZoomControl选项:{position:google.maps.ControlPosition.LEFT_TOP}添加到我的地图配置中。这是一个黑客攻击-因为google不希望我们将控件定位到其他任何地方。没有适当的官方解决办法。但是我的黑客还没有失败…请看编辑和示例:顺便说一句:你的JSFIDLE中有一个输入错误…@kolor:当然可以!只需使用
#newPos.gmnoprint>div
作为选择器:
$('div.gmnoprint:eq(-1),div.gmnoprint:eq(-3)')为我选择panControl和zoomControl@VinceLowe:谢谢你的提示。它仍然有效!请参阅更新…仅在周围没有其他控件时才起作用。它们会重叠。@givanse您不能定位其他控件有什么原因吗?可以,但您必须手动管理任何重叠、流等(应用程序的UI响应)。地图控件将使用来定位。在自定义控件中,您可以通过嵌套div和使用边距或填充来增加空白。这看起来不错,但不起作用:(尝试通过单击缩放按钮实际缩放地图…)不要使用CSS自定义地图。本文件未记录,如有变更,恕不另行通知。