2012-02-16 7 views
0

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が文字列を返さないのでしょうか?

答えて

0

なぜ文字列に変換していますか?

results[0].geometry.location 

には、フォーマットされた文字列ではなく、LatLngオブジェクトとしてジオコードされた緯度経度値が含まれています。

たとえば、これを使用できます。文字列
フォーム "LAT、LNG" の文字列を返します:

res.lat() and res.lng() 

はすなわち

var mydbUrl = 'mydb.php?lat='+res.lat()+'&lng='+res.lng(); 
+0

大変ありがとうございます – illichosky

関連する問題