2016-01-08 2 views
0

У меня есть карты Google с draggrabble маркером, который в InfoWindow показать улицу и городПолучить от Draggrable Маркер новой улицы и города

ТЕПЕРЬ Я использую этот код, чтобы получить новый LNG е ш в форме, когда маркер перетаскиваются


var geocoder = new google.maps.Geocoder; 
function geocodeLatLng(geocoder, map, infowindow) { 
var input = document.getElementById('latlng').value; 
var latlngStr = input.split(',', 2); 
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])}; 
geocoder.geocode({'location': latlng}, function(results, status) { 
if (status === google.maps.GeocoderStatus.OK) { 
    if (results[1]) { 
    infowindow.setContent(results[0].formatted_address); 
    infowindow.open(map, marker); 
    } else { 
    window.alert('No results found'); 
    } 
} else { 
    window.alert('Geocoder failed due to: ' + status); 
} 
}); 
} 

google.maps.event.addListener(marker, 'dragend', function (event) { 
document.getElementById("lat").value = this.getPosition().lat(); 
document.getElementById("lng").value = this.getPosition().lng(); 
document.getElementById("latlng").value = this.getPosition().lat()+','+this.getPosition().lng(); 
geocodeLatLng(geocoder, map, infowindow); 
}); 

Во входной LNG, латы, LatLng все в порядке, так что изменение значения перемещения маркеров, но я могу определить значение 2 других входа, является городом и улица

я Ищу что-то вроде

document.getElementById("address").value = this.address; 
document.getElementById("city").value = this.city; 

ответ

1

Компоненты результата содержат элемент organized in this way

results[0].components 

фильтрации n.th результат [0] .components [п] .types года по

  • маршрут соответствует длинному или короткому названию маршрута.

  • местонахождение соответствует как местным, так и подболотным типам.

  • administrative_area соответствует всем уровням administrative_area (administrative_area_level_3.political = город/город, administrative_area_level_2.political = область/округ, administrative_area_level_1.political = страна)

  • POSTAL_CODE матчей POSTAL_CODE и postal_code_prefix.

  • страна соответствует название страны или двухбуквенный код страны ISO 3166-1.

вы можете получить то, что вам нужно в

result[0].components[n].long_name 

, если вы хотите, единственное место, вы должны повторять этот путь

for (var i=0; i < results[0].address_components.length; i++) { 
     if (results[0].address_components[i].types == 'locality,political') { 
     window.alert(results[0].address_components[i].long_name); 
     }; 
    } 
+0

Спасибо за ваш ответ. Я попытался document.getElementById («адрес»). Value = result [0] .components ["locality"]. Long_name Но это не работает – cicciopasticcio

+0

@cicciopasticcio У меня есть обновление asnwer Я надеюсь, что это полезно .. – scaisEdge

+0

Привет, scaisEdge, я поместил ваш код «для ....» перед «document.getElementById (« lat »). Value = this.getPosition(). Lat(); ", но он вызывает эту проблему. Uncaught SyntaxError: Неожиданный идентификатор – cicciopasticcio

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