Tag: 谷歌 MAPS API 3

Google会延迟地映射api v3 drop marker动画

我知道有一个关于这个来自XML的Google Maps API v3 drop标记有延迟的问题吗? 我跟着它,但我不得不在我的代码中犯了一个错误,这里是: function dropAnim(lat,lng,name) { console.log(“—- ” + lat + ” – ” + lng); var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat,lng), map: map, title: name, animation: google.maps.Animation.DROP, icon: imageCar, }); } var counter = 0; $.get(‘http://server.com/methods.php?m=loadPins’, function(data) { dataName = data.name.split(“;”); dataLat = data.lat.split(“;”); dataLng = data.lng.split(“;”); dataLength = […]

从google places autocompleteService.getPlacePredictions返回多种类型

我正在尝试为Google地方自动填充实施自定义用户界面,因为预建的用户不允许我手动选择结果。 在getPlacePredictions函数选项中不使用多个类型时,一切正常,但当我使用[‘(regions)’,’(cities)’]时,状态返回’invalid request’ 我做错了什么或者不可能返回多种类型? var _this = this; this.input = $(‘#zipcode_autocomplete’); this.service = new google.maps.places.AutocompleteService(); this.input.on(‘input’, function() { return _this.service.getPlacePredictions({ input: _this.input.val(), types: [‘(regions)’, ‘(cities)’], componentRestrictions: { country: ‘us’ } }, _this.callback); }); this.callback = function(predictions, status) { var i, prediction, _results; console.log(predictions); if (status !== google.maps.places.PlacesServiceStatus.OK) { alert(status); return; } i = 0; prediction […]

我想只显示某个地理位置半径范围内的标记?

在我的页面上,当它加载它获取你的位置并在你的位置设置标记,然后我希望它从我的数据库加载所有标记并在地图上设置它们,但我只想加载距离它们1公里范围内的标记地点。 我正试图设置它,但我遇到了一些麻烦。 所以标记是从数据库加载的,如下所示: fetch()) { ?> var longi = “”; var lati = “”; var title = “”; setMarker(lati, longi, title); close(); $mysqli -> close();?> 然后setMarker函数调用如下: function setMarker(lati, longi, title) { var latLongMarker = new google.maps.LatLng(lati,longi); marker = new google.maps.Marker({ position: latLongMarker, map: map, draggable: false, title: title }); arrMarkers.push(marker); } 这一切都运行得很好,花花公子,并将数据库中的所有标记加载到地图上但是我怎样才能加载距离我1公里的标记? 我读到了关于computeDistanceBetween()但我找不到一个例子来拯救我的生命。 提前谢谢大家。 我最终找到了一种方法来实现这一目标,最终变得更容易,更快速地处理这里,你会去寻找未来的任何人: […]

如何知道Google地方何时加载并准备好(异步)?

我在JQuery中异步加载谷歌地图和地点: var script = document.createElement(‘script’); script.type = ‘text/javascript’; script.src = “http://maps.google.com/maps/api/js?key=myKey&libraries=places&sensor=false&async=2&callback=MapApiLoaded”; document.body.appendChild(script); 加载Google地图时会调用回调: function MapApiLoaded() { var input = document.getElementById(‘searchField’); var options = { types: [‘(cities)’], }; autocomplete = new google.maps.places.Autocomplete(input, options); google.maps.event.addListener(autocomplete, ‘place_changed’, function(event) { var item = autocomplete.getPlace(); // do some stuff } GMapsloaded = true; } 当我进入我的城市选择屏幕时,我首先检查是否已加载Google地图: if(!GMapsloaded) { alert(‘mapsnotloaded’); return; } […]

如何在Google Map API v3中区分左键和右键鼠标点击mousedown事件

Google Map API v3的mousedown事件会在左右两次点击时触发,如何识别是右击还是左击。 我是谷歌地图API的新手,我到目前为止使用的是虚拟地球API,在那里我可以区分鼠标左键和右键鼠标,如e.leftMouseButton如果左键单击则返回true。

向Google地图标记添加ID然后定位

我已经使用Google Maps API v3创建了一个谷歌地图,并添加了一个自定义标记,我已经为Marker构造函数添加了一个ID,我希望使用jQuery来添加额外的JS,但是当我只是尝试一些东西时比如$(’#’+ marker.id).hide(); 什么都没发生? 任何人都可以告诉我如何正确访问此标记ID? 我的制造商代码如下: marker = new google.maps.Marker({ externalURL: ‘http://www.google.com’, position: defaults.center, map: map, icon: markerImg, id: ‘marker’ }); 然后我使用以下代码创建一个目标的jQuery对象: var mapMarker = $( ‘#’+marker.id ); mapMarker.hide();

谷歌地图看起来在div内部移动

我在使用谷歌地图时遇到问题。 我将地图JS加载到一个文件中,我使用ajax(和jquery)附加一个模态div,其中包含地图。 我得到的东西如下图所示: 但是,当我“关闭”模态(删除div,因此,删除地图)并尝试再次打开它时,会出现问题: 除了看起来不完整之外,看起来地图认为它的左上角是div中的一些像素。 我向你保证,因为当我尝试移动地图时,它会刷新其内容并删除地图中的“不可见”(在这种情况下是不可见的)部分。 我要离开这里用来显示地图的代码(虽然这很简单)。 var marker = null, geocoder, latLng, map = null; geocoder = new google.maps.Geocoder(); latLng = new google.maps.LatLng(41.3865, 2.1648); var myOptions = { zoom: 16, center: latLng, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: false }; if(map === null) { map = new google.maps.Map(document.getElementById(“map_canvas”), myOptions); } function clearOverlays() { if (marker !== null) […]

没有地图的地理编码

我可以使用没有地图的Google地图地理编码API吗? 我有一个带有自动填充Google Maps API Place的文本框,我希望在用户输入街道号后,我会收到邮政编码。 问候

从数据层中删除所有function

我使用了类似的东西: var map; function initialize() { map = new google.maps.Map(document.getElementById(‘map-canvas’), { zoom: 4, center: {lat: -28, lng: 137.883} }); map.data.loadGeoJson(‘https://storage.googleapis.com/maps-devrel/google.json’); } google.maps.event.addDomListener(window, ‘load’, initialize); 将geojson形状文件加载到我的地图的map.data图层。 在形状文件中,有几个“要素”类定义要在地图上绘制的多边形。 直到这里我没有问题。 稍后,我想在另一个上加载另一个geojson文件(替换地图上绘制的’features’)。 当您只是将另一个文件加载到另一个文件上时,它只会将其重绘到另一个文件上。 在加载到新的geojson形状文件之前,如何清除所有要素的map.data图层? 我已经尝试使用带有循环的map.data.remove(feature) ,但我似乎无法从map.data层获得所有function。

如何访问Google Maps InfoBox中的Div?

我正在尝试使用jquery的$(‘#divname’)在信息框中选择一个 ,当地图上的任何标记被点击时,Google地图会生成该信息框。 问题:当我在点击标记后尝试使用$(“#gallery”)访问div时,也就是在该标记的click事件监听器内部,没有任何反应。 我尝试使用console.log($(“#gallery”).html())从click侦听器获取该div中包含的html,并返回null ! 我该如何选择这个div!? 单击“事件侦听器代码段” // Create Listeners markers[i]._index = i; google.maps.event.addListener(markers[i], ‘click’, function() { infoboxes[this._index].open(map, markers[this._index]); infoboxes[this._index].show(); console.log($(‘#gallery’).html()); }); 信息框片段代码 for( i = 0; i < json.length; i++) { // Place markers on map var latLng = new google.maps.LatLng(json[i].lat, json[i].lng); var marker = new google.maps.Marker({ position: latLng, map: map }); markers.push(marker); // […]