方法一︰透過單擊地圖取得經緯度
var myMap = new GMap2(document.getElementById( "my_map")); var myLatLng = new GLatLng(25.0476 3902653048, 121.51715755462 646); myMap.setCenter (myLatLng, 15); myMap.addContro l(new GLargeMapContro l()); document.getEle mentById('inLat Lng').value = myLatLng.toStri ng(); var myMarker = new GMarker( myLatLng ); myMap.addOverla y( myMarker ); GEvent.addListe ner(myMap, "click", function( overlay, point ){ if(point){ //設定標註座標 myMarker.setLat Lng(point); document.getEle mentById('inLat Lng').value = point.toString( ); } });
LatLng︰在上個單元『在地圖上新增標註』
方法二︰透過地址輸入取得經緯度
var myMap;
var myMarker
function load() {
if (GBrowserIsComp atible()) {
myMap = new GMap2(document. getElementById( "my_map"));
var myLatLng = new GLatLng(25.0476 3902653048, 121.51715755462 646);
myMap.setCenter (myLatLng, 15);
myMap.addContro l(new GLargeMapContro l());
document.getEle mentById('inLat Lng').value = myLatLng.toStri ng();
myMarker = new GMarker( myLatLng );
myMap.addOverla y( myMarker );
}
}
function addressGps() {
var myGeocoder = new GClientGeocoder ();
var address = document.getEle mentById('addre ss').value;
myGeocoder.getL atLng(address, function getRequest( point ){
if(!point){
alert('這個地址 Google 說不知道!');
}else{
//移動地圖中心點
myMap.panTo( point );
//設定標註座標
myMarker.setLat Lng(point);
document.getEle mentById('inLat Lng').value = point.toString( );
}
});
}
Address︰ LatLng︰這裡要介紹一個新的物件 GClientGeocoder
補充︰透過經緯度座標取得地址
使用方法與透過地址輸入取得經緯
var myMap;
var myMarker
function load() {
if (GBrowserIsComp atible()) {
myMap = new GMap2(document. getElementById( "my_map"));
var myLatLng = new GLatLng(25.0476 3902653048, 121.51715755462 646);
myMap.setCenter (myLatLng, 15);
myMap.addContro l(new GLargeMapContro l());
myMarker = new GMarker( myLatLng );
myMap.addOverla y( myMarker );
}
}
function getAddress() {
var strLatLng = document.getEle mentById('latln g').value;
strLatLng = strLatLng.repla ce("(", "[");
strLatLng = strLatLng.repla ce(")", "]");
var arrLatLng = eval(strLatLng) ;
var myLatLng = new GLatLng(arrLatL ng[0], arrLatLng[1]);
//移動地圖中心點
myMap.panTo( myLatLng );
//設定標註座標
myMarker.setLat Lng( myLatLng );
var myGeocoder = new GClientGeocoder ();
myGeocoder.getL ocations(myLatL ng, function(addres ses) {
if(addresses.St atus.code != 200) {
alert("此座標沒有找到對 應的地址 " + myLatLng.toUrlV alue());
} else {
var result = addresses.Place mark[0];
myMarker.openIn foWindowHtml( result.address );
document.getEle mentById('addre ss').value = result.address;
}
});
}
LatLng︰ Address︰不過所查詢出來的地址還是有點出
參考︰
‧Ian 懶惰蟲筆記 http://ianjung1
‧class GMap2︰事件 click、panTo(cen
‧class GEvent︰addListe
‧class GMarker︰setLatL
‧class GClientGeocoder
0 意見:
張貼留言