Venka Yeluri
Venka Yeluri

Reputation: 45

Translate geo coordinates to address C# or jQuery

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.

Upvotes: 1

Views: 1357

Answers (2)

Oleg Belousov
Oleg Belousov

Reputation: 10121

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

Upvotes: 0

Lakshmana Kumar
Lakshmana Kumar

Reputation: 1239

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>

Upvotes: 1

Related Questions