同时使用地理定位和地理编码 - Javascript

Posted

技术标签:

【中文标题】同时使用地理定位和地理编码 - Javascript【英文标题】:Use Geolocation and Geocoding at the same time - Javascript 【发布时间】:2013-11-13 15:07:14 【问题描述】:

我尝试在主页上使用GeolocationGeocoding。因此,当页面加载时,用户的位置应该显示在地图上。所以我找到了这段代码来获取用户的当前位置:

<script type="text/javascript"src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map = null;
            function showlocation() 
               // One-shot position request.
                navigator.geolocation.getCurrentPosition(callback);
            

      function callback(position) 

        var lat = position.coords.latitude;
        var lon = position.coords.longitude;

             document.getElementById('latitude').innerhtml = lat;
         document.getElementById('longitude').innerHTML = lon;

        var latLong = new google.maps.LatLng(lat, lon);

                var marker = new google.maps.Marker(
                    position: latLong
                );      

                marker.setMap(map);
        map.setZoom(8);
        map.setCenter(marker.getPosition());
      

      google.maps.event.addDomListener(window, 'load', initMap);
      function initMap() 
        var mapOptions = 
          center: new google.maps.LatLng(0, 0),
          zoom: 1,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        ;
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

      
</script>

<div id="map-canvas"></div>

这很好用。但我现在想添加一个用户可以更改地址的文本框(例如,如果它不正确或发生错误)。我找到了Geocoding,并找到了这篇文章: https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

现在Geolocation 不再起作用了。所以我搜索了一个与他们一起工作的解决方案。这是我现在的问题:

如何同时使用GeolocationGeocode

希望有人可以帮助我

【问题讨论】:

请问你有什么问题,要不要显示地址... 哦,对不起。我想在地图中显示位置。所以Geolocation 应该获取当前位置并将其显示在地图上,如果错误或发生错误,用户可以在文本框中手动输入地址。 但是我们可以得到用户的当前位置,但是我不知道如何编辑地址.. 但我认为通过在信息窗口中使用 setContent() 我们可以设置我认为 setContent() 是什么意思?我是 JavaScript 新手,对 Geolocation 很陌生@ 【参考方案1】:
google.maps.event.addListener(marker, 'click', (function(marker, i) 
                    return function() 
                        var name = markers[i].getAttribute("name");
                        var address = markers[i].getAttribute("address");
                        var html = "<b>" + name + "</b> <br/>" + address;
                        infowindow.setContent(html);
                        infowindow.open(map, marker, html);
                        // infowindow.setContent(html);
                        // infowindow.open(map, marker);
                    
                )(marker, i));

【讨论】:

现在,地理位置不再起作用了。但是感谢您的帮助:) 我找到了这篇文章,其中解释了整个代码,现在我对代码的理解好多了:) torbenleuschner.de/blog/628/…

以上是关于同时使用地理定位和地理编码 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章

iOS定位的使用:地理/逆地理编码/判断目标经纬度是否在大陆

使用地名进行弹性搜索的地理定位(地理编码)

使用定位,逆地理编码,经纬度《=转=》地址信息逆地理编码,地址《=转=》经纬度,贼方便!!!!

Google 地理编码 API 安全性

“在我附近找到”的 Rails 地理编码/地理定位选项

来自邮政编码的 Java Swing GoogleMaps 地理定位