我想在javascript中創建3D旋轉世界,從json動態定位點以顯示數據(如文本或圖片),並隨機從一個點旋轉到另一個點。使用Javascript和html5的GPS數據的3D世界
我想在開始開發之前收到示例和建議。你會使用哪些圖書館?你將使用哪一個algorythm來將世界相應地轉換爲GPS數據?
編輯:再次讀我的問題我想我應該更清楚。我想製作像Google地球一樣的東西,而不用縮放。在地球的三維模型上會有點,並且會從一個點轉到另一個點。
我想在javascript中創建3D旋轉世界,從json動態定位點以顯示數據(如文本或圖片),並隨機從一個點旋轉到另一個點。使用Javascript和html5的GPS數據的3D世界
我想在開始開發之前收到示例和建議。你會使用哪些圖書館?你將使用哪一個algorythm來將世界相應地轉換爲GPS數據?
編輯:再次讀我的問題我想我應該更清楚。我想製作像Google地球一樣的東西,而不用縮放。在地球的三維模型上會有點,並且會從一個點轉到另一個點。
我實際上只是建立了這樣的東西,除了CSS3 & JS。以下是我爲處理設備方向而編寫的代碼。該位置需要平滑,但它應該可以幫助你。它不斷髮出「標題」&「傾斜角度」的事件。它綁定到一個更大的框架中,所以你需要把它拉出來並以不同的方式觸發事件,但這很容易做到。
(function($){
// interface to the compass that gets normalized
$.Klass.add('HTML5.Orientation', $.Klass.Observable, {
init : function(config){
this._super();
$(window).bind('deviceorientation', this.bindMethod('orientationChange'));
this.degrees = 0;
this.config = config;
}
, orientationChange : function(ev){
/**
* beta = angle that top of device is pointing
* gamma = angle that side of device is pointing
*
* In portrait only: if gamma closer to 0, pointing back. If closer to +- 180, pointing forward
**/
var oEv = ev.originalEvent
, heading = oEv.webkitCompassHeading - (this.config.zeroDeg || 0)
, beta = oEv.beta
, gamma = oEv.gamma
, orient = window.orientation
, aOrient = window.orientation % 180
, angle = (aOrient ? gamma : beta);
// ignore bad data
if(oEv.webkitCompassAccuracy == -1){ this.trigger('bad-compass'); return; }
// if(oEv.webkitCompassAccuracy >= 30){ this.trigger('inaccurate-compass'); return; }
// I think this means it's warming up :)
if(oEv.webkitCompassAccuracy == 0 ){ return; }
// normalize left or bottom being up
if((90 === orient) || (180 === orient)){
angle = -angle;
}
// if in portrait and leaning forward, flip the angle around 90deg
if(!aOrient){
if(Math.abs(gamma) > 90){
angle = 180 - angle;
}
}
// normalize compass fliping from 0-->359 or visa-versa
if(this.lastHeading && (Math.abs(heading - this.lastHeading) > 180)){
this.lastHeading = 360-this.lastHeading;
}
if(!this.heading){ this.heading = heading; }
this.trigger('heading', this.heading = this.heading + heading - this.lastHeading);
this.trigger('angle', this.angle = angle);
this.lastHeading = heading;
}
});
}(jQuery));
這看起來像一個偉大的增強現實助手,對嗎? Upvoted分享!使用設備方向可能是一個很酷的功能添加。現在,我必須接近開始:旋轉帶有一些點的三維世界模型,從GPS數據動態生成,以一次顯示一個點。 A-la谷歌地球沒有縮放效果。 – 2011-12-27 18:14:30
啊,我猜錯了你的問題。你說「根據GPS數據旋轉世界」,我認爲你的意思是定向:)你試圖「旋轉」什麼數據? – 2011-12-27 18:59:15
哦,沒問題。你在這裏分享了很多代碼,我很想改變我對這個小項目的想法,所以我可以使用它:DD 我希望地球模型旋轉...在它的中心,在可見面上顯示一些GPS點,一次一個。它們將代表來自全球的用戶發送的數據。 也許更準確地說「旋轉」而不是「旋轉」? – 2011-12-27 23:08:40
這會很酷。一旦完成,就向您的應用程序發送鏈接(如果可能)。很想看到它。 – techfoobar 2011-12-27 14:47:08
當然我會的! – 2011-12-27 15:52:34
我一直在尋找類似的代碼或方法。三維旋轉地球瓦特/ JS。僅供參考,我找到了。 http://codecanyon.net/item/interactive-3d-globe/1172366 – 2012-02-05 12:17:19