Tag: 谷歌 MAPS API 3

使用infowindows(Google Maps API)添加多个标记

我目前使用下面的代码在Google Map上使用他们的API来放置多个标记。 我遇到的问题是多个infowindows不工作(只显示最后一个)。 SO上有很多像我这样的问题。 其实使这个问题的一大堆:-) 只是一个例子: 尝试将多个InfoWindows绑定到Google Map上的多个标记并失败 我的问题的解决scheme是相当容易的:只需将点击侦听器附加到(匿名)函数。 然而,我不明白的是为什么我的解决scheme不工作(保存数组中的标记和infowindows而不是一个variables)。 var markers = []; var infowindows = []; // add shops or malls for (var key in data.markers) { if (data.markers.hasOwnProperty(key)) { infowindows[key] = new google.maps.InfoWindow({ content: data.markers[key].infowindow }); markers[key] = new google.maps.Marker({ position: new google.maps.LatLng(data.markers[key].location.lat, data.markers[key].location.lng), map: map, flat: true, title: data.markers[key].name, draggable: false […]

Google Maps V3:通过AJAX加载infowindow内容

使用ajax将内容加载到我的infowindow中的最佳方法是什么? 现在我正在使用iframe获得类似的效果,但我并不那么满意。 我认为这将是直接的,但由于某种原因令我困惑。 这就是现在的工作方式: var markers = []; var infowindow = new google.maps.InfoWindow(); $.each(JSON.parse(aulas), function(i, a){ var latlng = new google.maps.LatLng(a.aula.lat, a.aula.lng); var marker = new google.maps.Marker({ position : latlng, title: a.aula.title }); google.maps.event.addListener(marker, 'click', function() { infowindow.close(); infowindow.setContent("<div class='infowindow_content'><iframe src='aulas/show/" + a.aula.id + "'></iframe</div>"); infowindow.open(map, marker); }); markers.push(marker); }); 在infowindow.setContent调用之前,通过ajax抓取内容是很容易的,但是我只想在infowindow打开的时候调用ajax。 有什么想法吗? 顺便说一句:我正在使用jQuery。 正如答案中所build议的,我决定将调用移动到setContent并打开到一个单独的函数。 对于那些有兴趣解决这个问题的代码是: […]

从HTMLElement获取google.maps.Map实例

我在页面上有一个现有的地图。 我可以使用沿着document.getElementById()的行select该元素来获取HTMLElement JavaScript对象。 是否有可能获得地图初始化时创build的google.maps.Map的实例,即它是HTMLElement对象的属性还是在其原型中?

Google Maps v3 – 如何在初始化时使用地址居中?

使用Google Maps API v3,有没有办法在初始化时设置地图的中心? 我有一个解决方法使用此代码: var geocoder; var map; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); codeAddress('germany'); } function codeAddress(address) { geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { […]

谷歌地图v3标准图标/影子名称(在v2中等同于G_DEFAULT_ICON)

我正在切换图标types的谷歌地图标记之间的默认一个和另一个(由谷歌图表API制作)。 切换回标准图标我使用: marker.setIcon('http://maps.google.com/mapfiles/marker.png'); 对于我使用的另一个图标: marker.setIcon('http://maps.google.com/mapfiles/marker_yellow.png'); 问题是: 是我使用的真正的“标准”(规范)的url? 是否确定谷歌不会改变它? 在gmaps api v2中使用像G_DEFAULT_ICON这样的常量会更好。 在api v3中有没有类似的东西? 如果没有的话,哪里可以find在所有的谷歌api v3的生活中保证工作的规范图标/影子url的列表? 同样的阴影问题 – 当我设置图标时,如何获得标准阴影而不是使用丑陋的m.setShadow(new google.maps.MarkerImage('http://maps.gstatic.com/mapfiles/shadow50.png', null, null, new google.maps.Point(10, 34))) ? (请注意, getShadow()不会告诉你任何事情,因为它使用defaultshadow在默认图标上返回null )。 PS:有一些dynamic的图标API,但他们都已被弃用, 并没有find补救办法 。

检测距离给定位置最近的公交站点

我需要从一个给定的位置一定距离内获得所有附近的公共交通信息。 公共交通的types可以是巴士,火车等。 这是我的意思: 如果我使用Google地图查询“位置附近的转机站(例如武吉士街新加坡)” ,那么它会将我想要的所有附近的转机站返回给我们。 就像图中所示的一样。 但我需要它的API来获取这些细节。 (如图中所示的巴士服务号,巴士站ID等)。 但是我找不到任何东西。 这是我试过的 我曾尝试使用Google Map Nearby Place API来searchtransit_station,bus_station,train_station等types的地点 。 但他们都返回零结果。 我只能使用此API来search附近的景点,但不能在附近过境。 我也检查了Google Transit API ,但是我只findAPI来将转接数据插入Google,但是不能将其提取出来。 我认为Google还没有公布过境API。 附加信息 我已经检查网站Gothere.sg 。 又困惑如何? 因为他们能够检测附近的过境。 仅仅是因为他们指定了“从 – 到”的方向。 我读了一个非常类似的问题检测附近的过境 。 如果我们使用Google API,也许还不可能。 但是对我来说没有什么不可能的 最后一招 作为最后的手段,我也检查提供商, publictransport.sg 。 我使用API​​进行破解。 发现它可以为我提供一些坐标的中转站。 但它缺less在Google地图上find的附近的API。 因此,我现在可以想到的一个解决方法是在这种情况下使用提供商publictransport.sg ,它给了我停止ID和它的坐标。 为此,首先,我必须使用Google GeoCoding API将位置名称转换为坐标,然后通过将search到的坐标与提供者所有的站点坐标进行比较来创build我自己的附近计算来查找附近的站点。 现在,对我来说是可能的,但是非常痛苦:-) 回到问题: 有没有办法从给定的位置检索所有的中转站数据(使用Google Maps API或其他任何API)? 你是怎么做到的? 谢谢 […]

我可以重新风格谷歌地图的infowindows看起来不那么糟糕?

在我看来,矮胖的演讲泡沫看起来非常糟糕,我想要一些更整洁,更简单的东西。 有没有任何本地的方式来更改信息框样式,而无需手动每次显示infowindow(笨拙)用jsreplace元素? 我正在使用谷歌地图api v3。

GMaps V3 InfoWindow – 禁用closures“x”button

从我所看到的,在GMaps API的v2中,有一个InfoWindow对象的属性“button”,可以通过给定InfoWindow没有closuresbutton的方式来定义: marker.openInfoWindowHtml("No Close Button",{buttons:{close:{show:4}}}); 以上内容不适用于v3。 有人知道一个办法吗? 我读了一个替代InfoWindow的实用工具,名为InfoBox,但在过去的两年中还没有开发出来。 我目前正在使用最新的3.13版本的Gmaps v3 API。 如果没有更好的解决scheme,jQuery的解决方法是可以接受的。

如何使用API​​ V3在每个页面上显示多个Google Maps

我有以下脚本。 我想让这两个地图出现在页面上,但不pipe我尝试什么,我只能得到第一个地图initialize()来显示…第二个没有。 有什么build议么? (也是,我不能在代码中添加它,但是第一个地图显示在<div id="map_canvas"></div><div id="route"></div>谢谢! <script type="text/javascript"> // Create a directions object and register a map and DIV to hold the // resulting computed directions var map; var directionsPanel; var directions; function initialize() { map = new GMap(document.getElementById("map_canvas")); map.setCenter(new GLatLng(41.1255275,-73.6964801), 15); directionsPanel = document.getElementById("route"); directions = new GDirections(map, directionsPanel); directions.load("from: Armonk Fire Department, Armonk […]

从谷歌地图API隐藏本地列表

当使用谷歌地图API显示的东西谷歌已经开始添加当地餐馆/酒店到地图。 我怎么能隐藏它们出现。 我查看了使用地图的网站上的相同位置(如yelp),并成功隐藏了当地的酒店/餐馆。 我一直在寻找层/覆盖,但无法弄清楚我是如何删除这个默认行为。 例 这些东西出现在我的地图上。 是否有可能隐藏这些泡沫和名字? 编辑 https://developers.google.com/maps/documentation/javascript/releases#36说,3.6默认引入了业务图标。 因此,设置v = 3.5作为参数将隐藏“业务图标”。 赏金有没有隐藏的业务信息的方式,而不坚持api的旧版本?