Я новичок в JavaScript и API Карт Google. Я пытаюсь создать набор функций, которые:
1-Get и адрес и возврат latlng в виде строки, чтобы я мог сохранить ее в базе данных для дальнейшего использования
2 - Получить строку из базы данных или непосредственно из функции 1, чтобы централизовать карту и установить маркер.
Вот прогресс, которого я добился до сих пор:
var map;
var geocode;
function initializeMap(lat, lng){
var eventLatlng=new google.maps.LatLng(lat, lng);
var mapOptions={
zoom: 13,
center: eventLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}
function getLocation(){
var address = document.getElementById("address").value;
geocoder = new google.maps.Geocoder();
geocoder.geocode({'address':address}, function(results,status){
if(status == google.maps.GeocoderStatus.OK){
var res = results[0].geometry.location;
return res.toString();
}else{
alert("Geocoding failed:"+status)
}
});
}
function setPlace(codeString){
var laln = stringToLatLng(codeString);
map.setCenter(laln);
var marker = new google.maps.Marker({map: map, position:laln});
}
function doAll(){
var test = getLocation();
setPlace(test);
}
function stringToLatLng(rcv){
var input = rcv.substring(1, rcv.length-1);
var latlngStr = input.split(",",2);
alert(latlngStr);
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
latlngArray[i] = new google.maps.LatLng(lat, lng);
return latlngArray[i];
}
Хорошая часть этого кода была взята из официального руководства и даже Stackoverflow. InitialiuzeMap отлично работает. getLocation () также работает. Возможно, проблема в setPlace () и / или stringToLatLng ().
Что я уже пробовал:
1-Вернуть getLocation напрямую [без .toString ()] в setPlace - ничего не произошло.
2 - Когда я помещаю значение, возвращенное из getLocation () WITH toString () в stringToLatLng, он говорит, что длина не определена Может быть, getLocation не возвращает строку?