[問題] Google Map API 上的W3C的用法???

看板AndroidDev作者 (假嗨)時間12年前 (2013/10/10 16:56), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
這是我看Google Map API V3時候,看到網路上有人利用這方式寫了位置偵測 底下是Google 提供的方法 var initialLocation; var siberia = new google.maps.LatLng(60, 105); var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687); var browserSupportFlag = new Boolean(); function initialize() { var myOptions = { zoom: 6, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions); // Try W3C Geolocation (Preferred) if(navigator.geolocation) { browserSupportFlag = true; navigator.geolocation.getCurrentPosition(function(position) { initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); map.setCenter(initialLocation); }, function() { handleNoGeolocation(browserSupportFlag); }); } // Browser doesn't support Geolocation else { browserSupportFlag = false; handleNoGeolocation(browserSupportFlag); } function handleNoGeolocation(errorFlag) { if (errorFlag == true) { alert("Geolocation service failed."); initialLocation = newyork; } else { alert("Your browser doesn't support geolocation. We've placed you in Siberia."); initialLocation = siberia; } map.setCenter(initialLocation); } } --------------------------------------------------------------------------- 這是網路上有人的做法 var browserSupportFlag = new Boolean(); function getCurrentLocation() { var array1 = new Array(23.56935, 120.49416); // Try W3C Geolocation (Preferred) if(navigator.geolocation) { browserSupportFlag = true; navigator.geolocation.getCurrentPosition(function(position) { array1 = [position.coords.latitude, position.coords.longitude]; }, function() { handleNoGeolocation(browserSupportFlag); }); // Try Google Gears Geolocation } else if (google.gears) { browserSupportFlag = true; var geo = google.gears.factory.create('beta.geolocation'); geo.getCurrentPosition(function(position) { array1 = [position.latitude,position.longitude]; }, function() { handleNoGeoLocation(browserSupportFlag); }); // Browser doesn't support Geolocation } else { browserSupportFlag = false; handleNoGeolocation(browserSupportFlag); } return array1; } function handleNoGeolocation(errorFlag) { if (errorFlag == true) { alert("Geolocation service failed."); } else { alert("Test OK"); } } ----------------------------------------------------------------------------- 裡面我看不懂一些地方,希望有人人解說一下 網友的寫法把經緯度宣告在array1內→23.56935, 120.49416 geo.getCurrentPosition(function(position) { array1 = [position.latitude,position.longitude]; } 我一直不了解這段程式碼的 position.latitude指向array1的23.5936,而position.longitude是指120.49416 ?? 原本我要依我手機的經緯度(或我輸入的值)來指定位置,但是雖然有定位到 但是Center一直都不會移到我輸入的值的位置上,我也覺得滿奇怪的 ------------------------------------------------------------------ 這是插入的程式碼 Var lat = Android.GetLat(); Var lon = Android.GetLon(); Var array1 = new Array(lat,lon) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.218.68

10/10 16:57, , 1F
var browserSupportFlag = new Boolean(); 的功能是?
10/10 16:57, 1F

10/10 16:59, , 2F
我知道rowserSupportFlag = new Boolean()了
10/10 16:59, 2F
文章代碼(AID): #1ILcl7Og (AndroidDev)
文章代碼(AID): #1ILcl7Og (AndroidDev)