看板 AndroidDev 關於我們 聯絡資訊
這是我看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
brandonron:var browserSupportFlag = new Boolean(); 的功能是? 10/10 16:57
brandonron:我知道rowserSupportFlag = new Boolean()了 10/10 16:59