как найти широту, длину данной области, используя пин-код - PullRequest
1 голос
/ 30 декабря 2011

Привет! Я использую карту Bing на своем веб-сайте и хочу, чтобы в течение долгого времени указывалось это местоположение на карте Bing. мой вопрос на моем веб-сайте, как я могу получить длинный участок, используя пин-код. Есть ли API, который я могу использовать для запроса lat long, давая пин-код области. Я хочу сделать это в бэкэнде. используя какой-то ajax-вызов к этому конкретному веб-интерфейсу API, получаю обратно lat lang и сохраняем его в базе данных, чтобы я мог использовать этот lat long для построения местоположения на моей карте bing.

Я использую карту Bing 7, где мне нужно поместить значение long long в объект json и передать его в карту Bing.

function GetMap()
{
var mapOptions = {
credentials: "Your Bing Maps Key",
center: new Microsoft.Maps.Location(47.592, -122.332), // i want these value in my         database 
mapTypeId: Microsoft.Maps.MapTypeId.birdseye,
zoom: 17,
showScalebar: false
}
var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), mapOptions);
}  

Я могу жестко запрограммировать его, но в моем приложении я предоставил клиенту опцию, которая используется для добавления нового местоположения, поэтому в бэк-энде я хочу, чтобы, когда клиент добавляет любое новое местоположение, он автоматически сохранял свой длинный адрес.

спасибо

Ответы [ 2 ]

1 голос
/ 03 января 2012

Использование пин-кодов для получения широты, длинные значения могут быть не лучшим решением, поскольку пин-коды, хотя популярны уже более века, все еще не являются стандартными во всем мире. например, в США пин-коды (почтовые индексы) обычно имеют 5 цифр (т. е. 06160), а в моей части мира их обычно 6 или более цифр.

Хотя вы можете использовать комбинацию адреса улицы, штата, страны и пин-кода, чтобы узнать почти правильные географические координаты почти в любой части мира. Смотрите следующий скрипт, который вызывает Google API для поиска значения Lat, Long ... Здесь я передаю этот код сообществу под лицензией GPL: -

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script>

<script src="http://maps.google.com/maps?file=api&v=3&key=ABQIAAAA7j_Q-rshuWkc8HyFI4V2HxQYPm-xtd00hTQOC0OXpAMO40FHAxT29dNBGfxqMPq5zwdeiDSHEPL89A" type="text/javascript"> </script>
 <script type="text/javascript">

        var geocoder, location1;

        function initialize() {
            geocoder = new GClientGeocoder();
        }
        function prepareQuery(){
            var query='';
            var a1 = document.getElementById('address1').value;
            var a2 = document.getElementById('address2').value;
            var a3 = document.getElementById('address3').value;
            var cty = document.getElementById('city').value;
            var stat = document.getElementById('state').value;
            var cntry =document.getElementById('country').value;
            var pin = document.getElementById('pincode').value;

            if(a1 != null && a1!=''){
                query = query + a1 + ",";                    
            }
            if(a2 != null && a2!=''){
                query =query + a2 + ",";                    
            }
            if(a3 != null && a3!=''){
                query = query + a3 + ",";                    
            }
            if(cty != null && cty!=''){
                query = query + cty + ",";                    
            }
            if(stat != null && stat!=''){
                query = query + stat + ",";                    
            }
            if(cntry != null && cntry!=''){
                query = query + cntry + ",";                    
            }
            if(pin != null && pin!=''){
                query = query + pin + ",";                    
            }
            //                alert("Prepare Query Returns " +query);
            return query;
        }
        function submitFunc(){
            var location = prepareQuery();               
            geocoder.getLocations(location, function (response) {
                if (!response || response.Status.code != 200)
                {
                    alert("Sorry, we were unable to geocode the address");
                }
                else
                {                     
                    location1 = {latitude: response.Placemark[0].Point.coordinates[1], longitude: response.Placemark[0].Point.coordinates[0], Address : response.Placemark[0].address};

                    var items = [];
                    $.each(location1, function(key, value){                          
                        items.push('<li id="' + key + '">' + key +" : "+ value + '</li>');
                    });
                    //                        alert(items)
                    $("body").append("Results is :-");
                    $('<ul/>', {
                        'class': 'my-new-list',
                        html: items.join('')
                    }).appendTo('body');
                }
            });
        }

    </script>

и HTML выглядит как ....

        Line 1   : <input type="text" id="address1" value="" placeholder="Enter first line of address."/> <br></br>               
        Line 2   :<input type="text" id="address2" value="" placeholder="Enter second line of address."/> <br></br>               
        Line 3   :<input type="text" id="address3" value="" placeholder="Enter third line of address."/> <br></br>               
        City     : <input type="text" id="city" value="" placeholder="Enter city name."/> <br></br>               
        State    : <input type="text" id="state" value="" placeholder="Enter state name."/> <br></br>               
        Country  : <input type="text" id="country" value="" placeholder="Enter country name."/> <br></br>               
        Pin Code : <input type="text" id="pincode" value="" placeholder="Enter pincode value."/> <br></br>               
        <input type="button" name="submitBtn" value="submit" onclick='submitFunc();'/> <br></br>

        <h3> <strong> Your Results Will be displayed Here . . . .</strong> </h3>
1 голос
/ 30 декабря 2011

Geonames - хороший сервис для всех видов локации, взгляните на список предоставляемых услуг:

http://www.geonames.org/export/ws-overview.html

Не могли бы вы использовать тот, чтобы искать почтовые индексы? api.geonames.org/postalCodeLookupJSON?postalcode=6600&country=AT&username=demo

...