Translate geo coordinates to address C# or jQuery

二次信任 提交于 2019-12-11 14:24:19

问题


In my jQuery code I can get user Geo coordinates. Now how can I translate GEO coordinates to an address either using C# or jQuery.


回答1:


Try this using jQuery. Give Lat, Lng in text box and click GO.

UPDATED

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Testing</title>
    <script src="scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyA7IZt-36CgqSGDFK8pChUdQXFyKIhpMBY&sensor=true" type="text/javascript"></script>
    <script type="text/javascript">

        var map;
        var geocoder;
        var marker;
        var latlng;
        var infowindow;

        $(document).ready(function() {

        });

        function initialize() {
            var mapOptions = {
                //center: new google.maps.LatLng(40.4230, 98.7372),   // Coimbatore = (11.0168445, 76.9558321)
                zoom: 3,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

            geocoder = new google.maps.Geocoder();
            infowindow = new google.maps.InfoWindow();

            var latlngStr = $('#address').val().split(",");
            var lat = parseFloat(latlngStr[0]);
            var lng = parseFloat(latlngStr[1]);

            $('#latitude').val(lat);
            $('#longitude').val(lng);

            latlng = new google.maps.LatLng(lat, lng);
            marker = new google.maps.Marker({
                position: latlng,
                map: map,
                draggable: true
            });
            map.setCenter(latlng);

            geocoder.geocode({ 'latLng': latlng }, function(results, status) {
                infowindow.setContent(results[0].formatted_address);
                $('#txtAddress').val(results[0].formatted_address);
            });
        }

    </script>
</head>
<body>
    <label>
        Lat, Lng:
    </label>
    <input id="address" type="text" placeholder="10.9435131, 76.9383790" />
    <input type="button" value="Go" onclick="initialize()" />
    <br />
    <br />
    <div id="map-canvas" style="width: 10px; height: 10px; display: none;">
    </div>
    <label>
        Latitude:
    </label>
    <input id="latitude" type="text" />
    <br />
    <label>
        Longitude:
    </label>
    <input id="longitude" type="text" />
    <label>
        Address:
    </label>
    <textarea rows="3" cols="30" id="txtAddress">
    </textarea>
</body>
</html>



回答2:


Short answer: No.

What you are trying to achieve is called Reverse Geocoding.

Explanation: Google's usage limitations specifically mention that they forbid the users from using the Geocoding API without displaying the result on the map.

Although there are no instructions as to where the map should be located on the page, and which requirements should it meet, the intention is quite obvious.

There are several alternative Geocoding engines. Try these:

Geonames

Bing maps

Yahoo maps



来源:https://stackoverflow.com/questions/16769865/translate-geo-coordinates-to-address-c-sharp-or-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!