javascript - mis - lector de coordenadas
¿Los mapas de Google obtienen latitud y longitud teniendo el nombre de la ciudad? (3)
Quiero obtener la latitud y la longitud de una ciudad proporcionando el nombre de la ciudad a la API. Debería funcionar para la mayoría de las ciudades, independientemente de cómo el usuario ingrese la ciudad.
Por ejemplo:
La ciudad puede ser ''miami, EE. UU.'' O la ciudad puede ser ''miami, estados unidos''
¿Cómo imprimo su latitud?
Esto parece innecesariamente complicado. Aquí hay un ejemplo de mapa de "eventos cercanos". Tomará la City, State
, los convertirá en latLng
latín y colocará marcadores en un mapa:
// Nearby Events with Google Maps
window.nearbyEventsMap = () => {
const centerOfUS = {
lat: 37.09024,
lng: -95.712891
}
// Create a map object and specify the DOM element for display.
const map = new google.maps.Map(document.querySelector(''#nearby_events_map''), {
center: centerOfUS,
scrollwheel: false,
zoom: 4
})
// Create a marker and set its position.
const geocoder = new google.maps.Geocoder()
// Filter out duplicate cityStates
let cityStates = {}
document.querySelectorAll(''.nearby_event_city_state'').forEach(event => {
cityStates[event] = event.innerText
})
// `cityState` is in the format of "City, State". It''s not picky about state being a word or the abbreviation.
for (const cityState in cityStates) {
const location = cityStates[cityState]
geocoder.geocode({
address: location
}, function (results, status) {
if (status === ''OK'') {
const result = results[0].geometry.location
const lat = result.lat()
const lng = result.lng()
const latLng = {
lat,
lng
}
return new google.maps.Marker({
map: map,
position: latLng
})
}
})
}
}
// /Nearby Events with Google Maps
Asegúrese de incluir sus etiquetas <script>
.
<script src="/dist/js/main.js"></script>
<!-- We''re loading this after the main.js script so the callback from main.js will be available to it. -->
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=nearbyEventsMap"></script>
, únete a todos los demás y obtén una marca de GitHub con resaltado de sintaxis ...
Puede encontrar el código jsfiddled aquí: http://jsfiddle.net/YphZw/ o más abajo:
$("#btn").click(function(){
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { ''address'': ''miami, us''}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
alert("location : " + results[0].geometry.location.lat() + " " +results[0].geometry.location.lng());
} else {
alert("Something got wrong " + status);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
</head>
<body>
<input id="btn" type="button" value="search for miami coordinates" />
</body>
</html>
Si desea más ejemplos para la API de Javascript, pruebe este enlace: https://developers.google.com/maps/documentation/javascript/examples/
El código que escribí está inspirado en el ejemplo de geocodificación simple .
Saludos.
EDITAR 1:
Puedes lograrlo usando una biblioteca PHP no oficial. Verifique este ejemplo: http://www.bradwedell.com/phpgooglemapapi/demos/geocoding.php (el código está en la parte inferior =
Puede utilizar el servicio de geocodificación de Google, por ejemplo,
http://maps.googleapis.com/maps/api/geocode/xml?address=Miami+FL&sensor=false
Eso le devuelve datos georeferenciados en una variedad de formatos (JSON, XML, etc.). En cualquier caso, la ubicación está definitivamente en el bloque de datos devuelto.
Los documentos API están en: