javascriptとGoogle Maps APIの新機能です。私は、関数のセットを作成しようとしていた:文字列をlatlngおよびsetCenter /マーカーの問題。 [GMaps-API-3]
1-取得し、アドレスと後で使用するために、私はデータベースに格納することができるように文字列として緯度経度を返す
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が文字列を返さないのでしょうか?
大変ありがとうございます – illichosky