Obtenez de l'adresse de l'emplacement de la Latitude et de Longitude dans google maps
Je veux après cliquez sur la carte google et d'obtenir la Latitude et la Longitude obtenir de l'emplacement du lieu de ils et de le mettre (adresse) déposée input#searchTextField
. Que dois-je faire?
J'ai essayé aussi, mais ne fonctionne pas pour moi:
DÉMO: http://jsfiddle.net/DXkZJ/
<input id="searchTextField" type="text" size="50" style="text-align: left;width:357px;direction: ltr;">
<div id="map_canvas" style="height: 350px;width: 500px;margin: 0.6em;"></div>
$(function () {
var lat = 44.88623409320778,
lng = -87.86480712897173,
latlng = new google.maps.LatLng(lat, lng),
image = 'http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png';
//zoomControl: true,
//zoomControlOptions: google.maps.ZoomControlStyle.LARGE,
var mapOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.TOP_left
}
},
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions),
marker = new google.maps.Marker({
position: latlng,
map: map,
icon: image
});
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input, {
types: ["geocode"]
});
autocomplete.bindTo('bounds', map);
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(autocomplete, 'place_changed', function (event) {
infowindow.close();
var place = autocomplete.getPlace();
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
}
moveMarker(place.name, place.geometry.location);
alert(place.name);
$('.MapLat').val(place.geometry.location.lat());
$('.MapLon').val(place.geometry.location.lng());
});
google.maps.event.addListener(map, 'click', function (event) {
$('.MapLat').val(event.latLng.lat());
$('.MapLon').val(event.latLng.lng());
alert(event.latLng.place.name)
});
$("#searchTextField").focusin(function () {
$(document).keypress(function (e) {
if (e.which == 13) {
return false;
infowindow.close();
var firstResult = $(".pac-container .pac-item:first").text();
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
"address": firstResult
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat(),
lng = results[0].geometry.location.lng(),
placeName = results[0].address_components[0].long_name,
latlng = new google.maps.LatLng(lat, lng);
moveMarker(placeName, latlng);
$("input").val(firstResult);
alert(firstResult)
}
});
}
});
});
function moveMarker(placeName, latlng) {
marker.setIcon(image);
marker.setPosition(latlng);
infowindow.setContent(placeName);
//infowindow.open(map, marker);
}
});
OriginalL'auteur jennifer Jolie | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Ok, donc tout d'abord vous avez besoin de géocodage inversé, ce n'est pas une géocodage, parce que vous allez à partir d'une latitude et de longitude dans une adresse plutôt que l'inverse (voir référence). Deuxièmement votre écouteur ne ferait jamais rien, parce qu'il est presque immédiatement états
return false
; dans ce cas, vous voudrez probablementevent.stopPropogation()
. En outre, google maps va intercepter vos clics de souris à une plus grande profondeur dans l'arborescence DOM quedocument
, de sorte que l'événement ne sera jamais écouté que très toute façon.Donc ce que j'ai fait a été de changer votre géocodage dans un géocodage inversé, ainsi que de déplacer le code dans le document auditeur dans google auditeur. Si vous vouliez conserver le comportement de l'auditeur d'être ajouté sur le focus, vous pouvez simplement créer un nouveau port d'écoute sur la carte de l'objet. Voici une travail jsfiddle illustrant ces changements, espérons que cette aide.
OriginalL'auteur kieran
Prendre un coup d'oeil à la gmap api aux développeurs.
pour le sujet Le Géocodage Inversé (Recherche D'Adresse) .
Vous allez avoir votre réponse.
OriginalL'auteur mohan.gade
Il suffit d'ajouter ce code après moveMarker() la fonction
De l'espoir, c'est ce qu'il vous faut 🙂
OriginalL'auteur Darshit Gajjar