我試圖發送經緯度和一個攝像頭圖像和一些其他數據使用PHP和JavaScript - 不要問,這只是一個小項目,我開始,希望能學到一些東西。爲了使緯度和緯度變得可用,我必須在經緯度和緯度經過檢索後調用攝像頭功能。這裏是我正在使用的javascript(地理位置部分來自Lynda.com,我將它與JpegCam合併)。我添加了lat和lon div來保存這些值。然後我打電話給網絡攝像機功能now_go()
,它使用getElementById()獲取緯度和長度。只要用戶分享他們的位置,這項工作就很好。如果他們不這樣做,now_go()函數不會被調用。但如果我早些時候調用它,即使用戶決定分享他們的位置,經緯度也不可用。所以在遊戲的哪個階段,我可以告訴用戶是否選擇不分享?在什麼時候我可以告訴用戶是否選擇不分享他們的位置?
<script type="text/javascript">
var t = new bwTable();
var geo;
function getGeoLocation() {
try {
if(!! navigator.geolocation) return navigator.geolocation;
else return undefined;
} catch(e) {
return undefined;
}
}
function show_coords(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
element('lat').innerHTML = lat;
element('lon').innerHTML = lon;
t.updateRow(0, [ lat.toString(), lon.toString() ]);
dispResults();
now_go();
}
function dispResults() {
element('results').innerHTML = t.getTableHTML();
}
function init() {
if((geo = getGeoLocation())) {
statusMessage('Using HTML5 Geolocation')
t.setHeader([ 'Latitude', 'Longitude' ]);
t.addRow([ ' ', ' ' ]);
} else {
statusMessage('HTML5 Geolocation is not supported.')
}
geo.getCurrentPosition(show_coords);
}
window.onload = function() {
init();
}
</script>
這是我變成了一個功能攝像頭腳本的一部分,所以我可以以後緯度和經度調用它已提取:
<script language="JavaScript">
function now_go(){
var lat = null;
var lon = null;
if ($("#lat").length > 0){
var lat = document.getElementById('lat').innerHTML;
}
if ($("#lon").length > 0){
var lon = document.getElementById('lon').innerHTML;
}
webcam.set_api_url('webcam/test/' + lat + '/' + lon);
webcam.set_quality(90); // JPEG quality (1 - 100)
webcam.set_shutter_sound(true, '/mark/js/webcam/shutter.mp3');
}
</script>
我敢肯定,這個代碼有其他問題,但這就是現在的樣子。上午五點,我認爲這會持續一段時間。
任何意見或建議將是了不起的。
謝謝, 馬克
我不確定你爲什麼使用double而不是'!! navigator.geolocation'來測試這個條件。如果你正在測試它的存在,一個不是'if(!navigator.geolocation){alert('你的瀏覽器不支持地理位置。')}' –
對你的問題沒有直接幫助,但不應該使用地理變量是否在if((geo = getGeoLocation()))位?如果分配失敗,在else塊之後使用它將失敗。 – Thor84no
請參閱這裏:http://stackoverflow.com/questions/7463367/how-to-call-function-when-user-allows-or-denies-access-to-physical-location –