Google 地图 V3:仅显示一些标记

2024-01-06

我有以下代码,它应该显示数组中位置的多个标记,单击时每个标记将显示一个信息窗口,一切正常,除了在 21 个位置中我只能显示 8 个标记。

// declare Variables
   var geocoder;
   var map;
   var tex;     
   var markersArray = [];
   // pids array 21 addreses
    var pids = [{ad:'251 Pantigo Road Hampton Bays NY 11946',pid:'9'},
    {ad:'Amagensett Quiogue NY 11978',pid:'10'},
    {ad:'789 Main Street Hampton Bays NY 11946',pid:'12'},
    {ad:'30 Abrahams Path Hampton Bays NY 11946',pid:'14'},
    {ad:'3 Winnebogue Ln Westhampton NY 11977',pid:'15'},
    {ad:'44 White Oak Lane Montauk NY 11954',pid:'16'},
    {ad:'107 stoney hill road Bridgehampton NY 11932',pid:'17'},
    {ad:'250 Pantigo Rd Hampton Bays NY 11946',pid:'19'},
    {ad:'250 Pantigo Rd Hampton Bays NY 11946',pid:'20'},
    {ad:'44 Woodruff Lane Wainscott NY 11975',pid:'21'},
    {ad:'Address East Hampton NY 11937',pid:'46'},
    {ad:'Address Amagansett NY 11930',pid:'49'},
    {ad:'Address Remsenburg NY 11960 ',pid:'50'},
    {ad:'Address Westhampton NY 11977',pid:'51'},
    {ad:'prop address Westhampton Dunes NY 11978',pid:'52'},
    {ad:'prop address East Hampton NY 11937',pid:'53'},
    {ad:'Address East Hampton NY 11937',pid:'58'},
    {ad:'Address Southampton NY 11968',pid:'59'},
    {ad:'Address Bridgehampton NY 11932',pid:'60'},
    {ad:'Address Sagaponack NY 11962',pid:'61'}];

    // create an MVCobject for creating Info window on marker
   var pin = new google.maps.MVCObject();
   // The content placeholder for the Info window. 
   var content = document.createElement("DIV");   
   var title = document.createElement("DIV");
   content.appendChild(title);
   // that is where you have the ajax result placed
   var streetview = document.createElement("DIV");
   streetview.style.width = "326px";
   streetview.style.height = "212px";
   content.appendChild(streetview);
   var infowindow = new google.maps.InfoWindow({
       content: content
   });
       // Initialize
   function initialize() {
       geocoder = new google.maps.Geocoder();
       var latlng = new google.maps.LatLng(40.8687097, -73.0014946);
       var myOptions = {
           zoom: 8,
           center: latlng,
           mapTypeId: google.maps.MapTypeId.ROADMAP
       }
       map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
       getAllPids();
   }
   // loop to create all markers
   function getAllPids() {
       var i;
      for (i = 0; i < pids.length; i++) {
           var test = pids[i];
           codeAddress(test);
       }        
   }
   // get latlng for each address , create marker  and add eventlistner to click open infowindow 
   function codeAddress(place) {
       geocoder.geocode({ 'address': place.ad }, function(results, status) {
           if (status == google.maps.GeocoderStatus.OK) {
               var marker = new google.maps.Marker({
                   map: map,
                   position: results[0].geometry.location,
                   title: place.pid
               });
               markersArray.push(marker);                  
               google.maps.event.addListener(marker, "click", function() {
                   openInfoWindow(marker);
               });
            } else {
               // alert("Geocode was not successful for the following reason: " + status);
           }
       });
   }
   // click event on marker calls this to show infowindow.
   function openInfoWindow(marker) {        
    getContent(marker.getTitle());          
       pin.set("position", marker.getPosition());
       infowindow.open(map, marker);
   }
   // Now ajax call to get the content for the current info window
   function getContent(pid) {          
      $.ajax({
                        type: "POST",
                        url: "mapSearchResult.aspx/get_map",                            
                        data: "{'pids':'"+pid +"'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(msg) {

                         title.innerHTML =msg.d; 

                        }
                    });          
   }

如果您取消注释此

// alert("Geocode was not successful for the following reason: " + status);

你会发现原因代码 https://developers.google.com/maps/documentation/javascript/reference#GeocoderStatus is OVER_QUERY_LIMIT (620).

有一个速率限制:如果您对许多地址进行地理编码而不在它们之间引入延迟,您将打破该限制,因为您在太短的时间内完成了太多的操作。

您的某些地址不会进行地理编码(或不会产生您想要的结果),因为地理编码器使用邮政地址。地址如地址 东汉普顿 NY 11937 or 道具地址 Westhampton Dunes NY 11978不是邮政地址。

建议的策略是不要浪费与他人共享的 Google 资源。通过一次性操作自行对地址进行地理编码,将这些位置存储在数据库中(或直接在代码中使用它们),然后使用坐标来定位标记。不必费心在每次加载页面时查找您已经知道的位置。仅使用地理编码器来查找您事先不知道的位置:用户输入的地址。

如果您确实必须颠覆该策略并对所有内容进行地理编码,那么您需要放慢请求速度。当您提交更多请求时,您可能必须进一步减慢它们以满足地理编码器的要求。我在以下位置制作了一个版本 3 示例(来自著名的版本 2 示例)http://acleach.me.uk/gmaps/v3/plotaddresses.htm http://acleach.me.uk/gmaps/v3/plotaddresses.htm— 您可以看到它开始时请求之间有 100 毫秒的延迟,但在 20 次迭代后需要减慢到 150 毫秒左右。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 地图 V3:仅显示一些标记 的相关文章

  • 谷歌地图的地址建议

    有人知道是否有任何方法可以重现 ajax 建议框 例如http maps google com http maps google com 我的网页中有使用 google 地图 api 的吗 例如 如果有人写下 15 Avenue 的建议列表
  • getpaths() 多边形 谷歌地图 API

    我正在尝试检索折线和多边形的纬度坐标 完成任一对象的绘制后 我想将经纬度存储在数据库中 但现在我只是尝试在文本区域中显示经纬度 我已经很容易地完成了标记 矩形和圆形的操作 但是折线和多边形的术语让我感到困惑 当我完成绘图时 我使用 addD
  • 谷歌地图路线生成与航点

    我有一个现有的应用程序 可以跟踪车辆并在地图上渲染其折线 并且我希望能够使用路由服务将这些折线导入到另一个应用程序中 以便导入的折线捕捉到道路并可以拖动 ETC 我目前正在做的是编码 var encoded path google maps
  • “google.maps.event.addDomListener(窗口,'加载',初始化);”是什么意思意思是? [复制]

    这个问题在这里已经有答案了 这是什么意思 google maps event addDomListener window load initialize 我有函数 initialize 但我还添加了两个参数 经度和纬度 所以它是这样的 fu
  • 谷歌地图使用值 BESbswy 在内部创建隐藏的 div 和 span 并降低角度性能

    我在我的角度项目上使用谷歌地图 API v3 但是当我将地图添加到我的项目时 谷歌地图会创建一个隐藏的 div style height 1px width 1px span style font size 48px width 1 hei
  • 通过 HTTPS 的 Google 地图 API v3?

    谷歌地图 API v3 是否有 https 版本 我有一个使用 https 的网站 并且在 IE 中遇到烦人的混合安全和非安全内容错误 我在 v2 中读到你必须付费才能获得此内容 但在 v3 中没有看到任何内容 昨天 Google 宣布网站
  • 您可以通过 Google AJAX API 加载器加载 Google Maps API v3

    前段时间我使用了加载 Google Maps API 的常规方法 如下所示
  • 加载谷歌地图控件时是否有事件?

    我知道tilesloaded 但控件似乎在该事件之后加载 我基本上希望能够通过 jQuery 获取控件 但甚至找不到正确的监听 我也刚刚处理了 没有类似的事件 在控件可见之前空闲和tilesloaded触发 因此 基本上将 特殊控制 类添加
  • API Google 地图 v3:更改 Zoom_changed 上标记的大小

    我需要有关 Google Maps API v3 的帮助 我有一张带有标记 图片 的地图 来自数据库的信息 此时的图片和地图都还可以 我想在更改缩放时调整标记的大小 但我的代码不起作用 图片消失 被默认图标取代 你能帮我看看出了什么问题吗
  • Google 地图 api javascript 标签未验证

    正在寻找当前网站 正在使用 W3C 进行完全 HTML5 验证 这是无法验证的 Google 地图 API Javascript 标记 这是W3C的回应 没有开始字符引用 可能应该被转义为 它不喜欢 定义传感器是真还是假时 我尝试过以下方法
  • 带有方向的谷歌静态地图

    我的项目列表中有带有迷你地图的生成地点 地图上应该有 2 个点以及这两点之间的彩色道路方向 它应该看起来像这样 这应该是静态图片 因为页面上会有很多这样的不同方向的图片 但正如我所见 谷歌静态地图不允许绘制这样的图像 两点之间只能有直线 如
  • Google Maps API v3:在 Firefox 中未触发自定义标记的点击事件

    创建了一个地图 我试图使其具有类似于 我的地图 的功能 我的右侧有两个下拉列表 根据这些 ddl 中的选择 您可以添加自定义标记 图标 您选择标记类型 然后单击地图右上角的 按钮 然后单击要添加标记的位置 我的问题是 这在 IE Safar
  • 如何更改/自定义 Google 地图上街景小人的图标?

    我已经搜索了 stackexchange 但我只找到了更改街景小人位置的问题 答案 有没有办法改变它的源图像 我尝试过像这样影响风格 map canvas gt div gt div nth child 8 gt div nth child
  • Google 地图 - 如何获取空白底图

    我想要一个空白的谷歌地图 没有任何显示路线图 地形 混合或卫星数据的底图 只有一个白色背景来仅显示我的图层 那可能吗 hexblot 的建议是正确的 即查看自定义地图类型文档 这是我在没有任何控制的情况下获得空白地图 白色背景 所做的事情
  • 使用 infowindows 添加多个标记(Google 地图 API)

    我目前正在使用以下代码 使用他们的 API 在 Google 地图上放置多个标记 我遇到的问题是多个信息窗口不起作用 仅显示最后一个 SO 上有很多像我这样的问题 实际上让这成为一大堆问题 举个例子 尝试将多个 InfoWindows 绑定
  • Google Places API:如何使用多种类型?

    我需要一个返回评级 照片 开放 关闭时间等的 POI API 我认为 Google Places API 似乎可以满足我的要求 但我在过滤方面遇到了一些麻烦 我想使用多种类型的自动完成功能过滤 这是我所拥有的 var map var sel
  • 如何在通过鼠标拖动选择的区域内获取标记?

    In Brief我想找到位于通过在地图上拖动鼠标创建的矩形区域内的所有标记 任何 jQuery 插件或其他插件是否支持此功能 如果没有 我想在我的项目中实现这一点 我想这会很酷 Details我正在使用 Google 地图 v2 因为我想在
  • 使用 Selenium 放置嵌入的谷歌地图标记

    我有一个 asp net 网站 作为向导的一部分 它使用嵌入式谷歌地图通过单击地图放置标记来选择位置 我如何使用 Selenium 实现自动化 我特别尝试过 ClickAt 双击 鼠标按下 鼠标按下 在所有情况下 传递地图 div id 作
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • Google Maps API 下拉列表,缩放至标记

    我正在使用 Google Maps API v3 我有一个带有一些标记的简单地图 我还有一个下拉列表 我需要最少的代码来完成这项工作 我想在下拉列表中选择一个标记 并将选定的标记平移到它 我已经尝试了一切并在网上查看 我发现事情很接近 但到

随机推荐

  • rbenv 无法更改全局 ruby​​ 版本

    我的 Mac OS X 有一个默认的 ruby ruby v ruby 2 0 0p451 2014 02 24 revision 45167 universal x86 64 darwin13 我安装了 rbenv 和 ruby 版本 2
  • 是否可以覆盖 mat-datepicker 上的 mat-monthly-view 组件以添加周数列?

    我正在尝试将周数列添加到来自角度材料的 mat datepicker 组件中使用的 mat monthly view 组件 我想扩展当前的 mat monthly view 并在某种程度上告诉我的模块 当调用 mat monthly vie
  • 如何修复 django 'django.core.exceptions.ImproperlyConfigured' 的 url 错误?

    from django contrib import admin from django urls import path include urlpatterns path admin admin site urls path polls
  • 尝试将文件上传到 Google 云端硬盘时不断收到“需要登录”错误

    我正在编写一个 chrome 扩展 它将拦截某些下载 当前为 doc 和 docx 文件 并获取这些文件并自动将它们上传到您的 Google 驱动程序文件夹 这是我的清单 Default manifest crap manifest ver
  • Spring webflow 生产中的序列化问题

    我有一个 grails 应用程序使用 webflow 以正确的方式做一些事情 所以在开发模式下一切顺利 我可以完成注册并且对象正常序列化 但是 在生产模式下 部署在带有ssl的tomcat 7上 当需要保存数据时会出现以下错误 简而言之 序
  • R 中逻辑回归的交互[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在 R 中使用函数 glm 运行逻辑回归 我想添加两个自变量之间的交互作用 并且我知道我可以使用 或 来链接这两个术语 示例 我有一个分
  • 直接打开 Xserver 的套接字

    我希望了解 Linux 桌面环境如何与 Xserver 配合使用 我读到大多数窗口管理器不直接打开套接字 而是使用 Xlib 绑定 来编写 WM 的任何语言 或者您可以使用更高级别的绑定 XCB 但我想知道直接向 Xserver 打开套接字
  • 如何将按钮添加到功能区上预先存在的选项卡 (C#)?

    我已成功创建一个新选项卡并将其放在先前存在的选项卡旁边 然后我意识到它上面只有一个按钮 因此 目前 将其放在 主页 选项卡上更有意义 但并没有真正发挥作用 我尝试遵循指南和步行槽 我得到了一个 XML 并将其 XML 更改为以下内容
  • ggplot2和其他函数(R)之间的加号[重复]

    这个问题在这里已经有答案了 我试图得到这个例子 ggplot mpg aes displ hwy geom point 有人可以解释一下这两个函数之间发生了什么吗 ggplot2 是否重载 加 运算符 总结这2个结果是什么 它被分配给什么
  • 如何使用 Vue3 中的设置存储语法在 Pinia 存储中使用 `useRoute`/`useRouter`?

    我一直在尝试让我的 Pinia 商店在 Vue 3 中启动并运行 这一切都非常轻松 直到我想访问 url 中的一些参数 我有一家商店 简化 如下所示 import defineStore from pinia import useRoute
  • 如何从 iOS AVAudioRecorder 获取正确比例的分贝读数?

    我正在尝试使用 AVAudioRecorder 获取 iOS 应用程序中的噪音级别 我正在使用的代码是 self recorder updateMeters float decibels self recorder averagePower
  • 如何向datagridview添加过滤器

    我正在尝试将 csv 文件加载到 datagridview 现在我想向 datagridview 添加过滤 怎么做 这是我读取和加载 csv 文件的方法 openFileDialog1 InitialDirectory C openFile
  • 如何在 XCode 的 Interface Builder 中定义颜色?

    我想在 Interface Builder 中的元素之间复制颜色或使用 RGB 值定义它们 例如 我想将一个按钮的背景颜色复制到另一个按钮而不重复该按钮 或者 在 Interface Builder 中输入准确的 RGB 代码就足够了 这样
  • JQuery .slideDown() 向上滑动

    这有效 但我不知道为什么 在function capIn 我心中的那条线 botcap slideDown slow 应该将 div 向下滑动 它会将其向上滑动 如果我尝试使用 slideUp 没有任何反应 就像它试图将其滑落一样 谁能向我
  • 如果页面没有回发

    我知道这个 if IsPostBack do something 但是 如果页面未回发我需要执行某些操作怎么办 我使用其他还是有其他 更好的方法 最明显的解决方案可能如下所示 if IsPostBack It is a postback e
  • PHP Dom 无法检索元素

    code h1 Galeria h1 div class galeria ul li img src img jpg width 350 height 350 br Teste li ul div dom new DOMDocument d
  • CakePHP - 如何将 html css 助手链接到不同的文件夹

    目前我正在使用它来加载我的 CakePHP 项目中的 css echo this gt Html gt css jquery ui null array inline gt false 假设我将 css 文件放在 css 文件夹中 但是 我
  • 关于性能和 Java 互操作性:Clojure 与 Scala

    我已经阅读过有关 Clojure 与 Scala 的各种报道 同时我意识到两者都有自己的位置 在比较 Clojure 和 Scala 时 有一些考虑因素我还没有获得完整的解释 1 两种语言中哪一种通常是faster 我意识到这会因一种语言特
  • C# Regex 匹配标签之间的任何文本,包括换行符

    这是我的正则表达式 START OK END 我想获取其中包含的任何文本 START OK and END 然而 当我的文字包含一些 r n字符 我的正则表达式与它不匹配 怎样才能让它发挥作用呢 使用单行模式 http msdn micro
  • Google 地图 V3:仅显示一些标记

    我有以下代码 它应该显示数组中位置的多个标记 单击时每个标记将显示一个信息窗口 一切正常 除了在 21 个位置中我只能显示 8 个标记 declare Variables var geocoder var map var tex var m