2013-03-05 5 views
1

Я развиваюсь с помощью Nokia Maps (замечательный вариант, я действительно люблю их), но я могу только получить местоположение (широта и долгота) с помощью HTML5, но я не могу назвать, где я: /, возможно, кто-то может дать представление, как это сделать, спасибо вам, что очень помогли вам.Как получить название страны или города или штата с Nokia Maps?

ответ

3

Maps API для JavaScript 3.x

В настоящее время 3.x JavaScript API предлагает тонкую оболочку вокруг REST Geocoder API. Вам нужно сделать поиск ReverseGeocode, а затем извлечь данные из объектов Location, найденных в результате.

Полностью работает обратный геокодирования пример можно найти here, но важный бит (получение адреса) можно увидеть ниже:

function reverseGeocode(platform) { 
    var geocoder = platform.getGeocodingService(), 
    reverseGeocodingParameters = { 
     prox: '52.5309,13.3847,150', // Location 
     mode: 'retrieveAddresses', 
     maxresults: '1', 
     jsonattributes : 1 
    }; 

    geocoder.reverseGeocode(
    reverseGeocodingParameters, 
    function (result) { 
     var locations = result.response.view[0].result; 
     // ... etc. 
    }, 
    function (error) { 
     alert('Ooops!'); 
    } 
); 
} 

Maps API для JavaScript 2.x (устаревшее)

с недавнего времени осуждается 2.x JavaScript API, вы снова должны сделать ReverseGeocode поиска, а затем извлечь данные из объекта Address е ound в результате.

код немного дольше, но важный бит (получение адреса) можно увидеть ниже:

// Function for receiving search results from places search and process them 
var processResults = function (data, requestStatus, requestId) { 
    var i, len, locations, marker; 

    if (requestStatus == "OK") { 
     // The function findPlaces() and reverseGeoCode() of return results in slightly different formats 
     locations = data.results ? data.results.items : [data.location]; 
     // We check that at least one location has been found 
     if (locations.length > 0) { 

      for (i = 0, len = locations.length; i < len; i++) { 
       alert(locations[i].address.street); 
       alert(locations[i].address.state); 
      } 

     } else { 
      alert("Your search produced no results!"); 
     } 
    } else { 
     alert("The search request failed"); 
    } 
}; 



/* We perform a reverse geocode search request: translating a given 
* latitude & longitude into an address 
*/ 
var reverseGeoCodeTerm = new nokia.maps.geo.Coordinate(
    52.53099, 
    13.38455 
); 



nokia.places.search.manager.reverseGeoCode({ 
    latitude: reverseGeoCodeTerm.latitude, 
    longitude: reverseGeoCodeTerm.longitude, 
    onComplete: processResults 
}); 
+0

Большого спасибо, извините за поздний повтор: / –

 Смежные вопросы

  • Нет связанных вопросов^_^