【问题标题】:Google map v3 - how to bind event with the service of GmapGoogle map v3 - 如何将事件与 Gmap 的服务绑定
【发布时间】:2013-09-26 03:25:24
【问题描述】:

我在使用 Google 地图 v3 时遇到了奇怪的情况。当用户点击谷歌地图时,我们会将我们的注册divs 放在地图上并捕获用户详细信息。但问题是当用户放大时,他们会达到以下情况

现在假设如果用户点击医院、学校、学院等地方的小图标(不知道在 gmap 方面对这些图标的确切说法),它会忽略写入的 Click 事件,并且 google 会抛出 infoWindow屏幕。

如何禁用此默认行为?如何将我的事件与此绑定?所以当用户点击这些图标时(不知道这些图标在 gmap 方面的确切说法),他们会在 gmap 上注册我的 div。

【问题讨论】:

  • 确保您在按钮或 div 上使用带有 jquery click 事件的 live
  • 如何使用显示注册表单的点击处理程序在地图顶部添加一个透明 div。注册后,可以删除 div,您的地图的行为就像普通地图一样。
  • 粗鲁,我的意思是如何禁用此默认行为/将我的事件与此绑定?
  • 嗨纳伦德拉。我试图解释的是让一个 div 覆盖整个地图,并在该 div 上执行注册的单击处理程序。这样您就不必在地图上添加地图侦听器来执行注册。注册完成后,移除 div 并让地图表现得像地图一样。

标签: javascript jquery google-maps dictionary google-maps-api-3


【解决方案1】:

当你写“不知道从 gmap 的角度来看这些图标该怎么说”时,我想:你为什么不把它们去掉?如果我理解正确,您只是对默认的“兴趣点”图标等感到恼火,它们会“窃取”您的点击次数吗?

您可以使用styles 从谷歌地图 v3 中删除 任何东西(是的,所以它只是一个灰色背景)。只需创建一个 styles-array 并将其分配给您的 options

var styles = [
   {
    elementType: "all",
    featureType: "poi",
    stylers: [{ visibility: "off" }]
   },
   {   
    elementType : "all",
    featureType: "administrative",
    stylers: [{ visibility: "off" }]
   }
];

这里visibility 对于所有管理图标(包括子类别)和所有兴趣点,“兴趣点”(包括子类别)设置为关闭。 Documentation for all featureTypes。您可以非常详细地说明要在地图上显示的内容,以及要如何显示剩余内容。

在常规选项中使用样式作为参数值,例如

var options = {
  center: mapCenter,
  zoom: 10,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  zoomControl: true,
  streetViewControl: false,
  styles : styles
}

map = new google.maps.Map(document.getElementById("map"), options);

现在您的地图已针对医院、学校等进行了清理。

【讨论】:

    【解决方案2】:

    函数初始化映射(){

    var map = new google.maps.Map(document.getElementById('map'), {

    缩放:4,

    center: {lat: 41.3103509, lng: 69.2732513} // 乌兹别克斯坦。 });

    【讨论】:

    • 请说明这以何种方式回答问题以及如何使用它
    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 2011-10-22
    相关资源
    最近更新 更多