質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3426閲覧

風向のチャートのコンパスをGPSで動かしたいです。

vanille

総合スコア16

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/05/18 07:47

いつもありがとうございます。

今、Anychart.jsを利用して、風向の画面を作っています。サンプルを利用して、画面は出来たのですが、更に、GPSを取得してコンパスを動かす事は可能でしょうか?アドバイスいただければと思い投稿しました。どうぞよろしくお願いします。
イメージ説明

html

1<!doctype html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <script src="https://cdn.anychart.com/js/7.13.1/anychart-bundle.min.js"></script> 6 7 <title>Weather Dashboard</title> 8 <style> 9 html, body, #container { 10 width: 100%; 11 height: 100%; 12 margin: 0; 13 padding: 0; 14 } 15 </style> 16 </head> 17 <body> 18 <div id="container"></div> 19 <script type="text/javascript"> 20 21anychart.onDocumentReady(function() { 22 // Create table to place gauges and information 23 layoutTable = anychart.standalones.table(4, 3); 24 layoutTable.hAlign('center') 25 .vAlign('middle') 26 .useHtml(true) 27 .fontSize(16) 28 .cellBorder(null); 29 30 // Set height and width for some cols and rows for layout table 31 layoutTable.getCol(2).width('50%'); 32 layoutTable.getRow(0) 33 .height(60) 34 .fontSize(18); 35 layoutTable.getRow(1).height(60); 36 layoutTable.getRow(3) 37 .height(60) 38 .fontSize(14) 39 .vAlign('top'); 40 41 // Merge cells in layout table where needed 42 layoutTable.getCell(0, 0).colSpan(3); 43 layoutTable.getCell(1, 0).colSpan(2) 44 .fontColor('#212121') 45 .fontWeight(600); 46 layoutTable.getCell(2, 0).colSpan(3) 47 48 // Put data and charts into the layout table 49 layoutTable.contents([ 50 ['The Weather<br/><span style="color:#1976d2; font-size: 16px; font-weight: 300">' + 51 anychart.format.dateTime(new Date(), 'dd MMMM yyyy') + '</span>', null, null], 52 [null, null, null], 53 [drawCircularGauge(305, 6), null, null], 54 [null, null, null] 55 ]); 56 57 // Set container id and initiate drawing 58 layoutTable.container('container'); 59 layoutTable.draw(); 60 61 62 63 // Helper function to create circular gauge 64 function drawCircularGauge(direction, force) { 65 var gauge = anychart.gauges.circular(); 66 gauge.fill('white') 67 .margin(30) 68 .stroke(null) 69 .tooltip(false); 70 gauge.data([direction]); 71 72 gauge.axis().scale() 73 .minimum(0) 74 .maximum(360) 75 .ticks({interval: 45}) 76 .minorTicks({interval: 45}); 77 gauge.axis() 78 .startAngle(0) 79 .fill('#CECECE') 80 .width(2) 81 .radius(100) 82 .sweepAngle(360); 83 gauge.axis().ticks() 84 .enabled(true) 85 .length(20) 86 .stroke('2 #CECECE') 87 .position('in') 88 .type(function(path, x, y, radius) { 89 path.moveTo(x, y - radius / 2).lineTo(x, y + radius / 2).close(); 90 return path; 91 }); 92 93 gauge.axis().labels() 94 .fontSize(20) 95 .position('outside') 96 .format(function() { 97 if (this.value == 0) return 'N'; 98 if (this.value == 45) return 'ne'; 99 if (this.value == 90) return 'E'; 100 if (this.value == 135) return 'se'; 101 if (this.value == 180) return 'S'; 102 if (this.value == 225) return 'sw'; 103 if (this.value == 270) return 'W'; 104 if (this.value == 315) return 'nw'; 105 else return this.value; 106 }); 107 108 gauge.needle() 109 .fill('#64b5f6') 110 .stroke('#64b5f6') 111 .startRadius('45%') 112 .middleRadius('5%') 113 .endRadius('-85%') 114 .startWidth('0%') 115 .endWidth('0%') 116 .middleWidth('20%'); 117 118 gauge.cap() 119 .radius('30%') 120 .enabled(true) 121 .fill('#fff') 122 .stroke('#CECECE'); 123 124 gauge.label() 125 .hAlign('center') 126 .anchor('center') 127 .text( 128 '<span style="color: #212121; font-weight: 600">' + direction + '</span>\u00B0<br>' + 129 '<span style="color: #212121; font-weight: 600">' + force + '</span> m/s').useHtml(true); 130 131 return gauge 132 } 133}); 134 135 </script> 136 </body> 137</html> 138 139

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namimon

2017/05/18 08:48

GPSを使うということは、スマートフォンでの実装なのでしょうか?実装したいをプラットフォームなどをもう少し詳細に書いた方が、回答がつきやすいと思います。
vanille

2017/05/19 01:04

namimonさんありがとうございます。客先のデバイスが確認でき次第、また追加させていただきたいと思います。よろしくお願いします。
ozwk

2017/05/19 01:34 編集

ベストアンサーついてますが、風向きは対象デバイス基準の方向で取得できて、後は対象デバイスの絶対方位が分かれば風向きの絶対方位がわかるだろうみたいな目的ですか?
vanille

2017/05/19 02:49

ozwkさん、ありがとうございます。風向はデータがあるので、後はコンパスを動かしたいのです。どうぞよろしくお願いします。
ozwk

2017/05/19 02:52 編集

「コンパスを動かす」って「風向きに応じてコンパスの針を回す」ってことじゃないんですか?
ozwk

2017/05/19 02:55

それとも「画面の北向きとコンパスの北向きを合わせたい」ということですか
vanille

2017/05/19 02:56

ozwkさん、ありがとうございます。説明が足りなくて申し訳ありません。コンパスは進路に合わせて欲しいということでした。よろしくお願いします。
vanille

2017/05/19 02:57

ozwkさん、ありがとうございます。そうです。Nを合わせたいということでした。説明が下手ですみませんでした。どうぞよろしくお願いします。
ozwk

2017/05/19 02:59

ちなみに何が何でもGPSじゃなきゃダメなんですか?
vanille

2017/05/19 04:11

ozwkさん、ありがとうございます。GPSも含めて位置情報についてはわかっていません。なにか良い方法がありましたら、アドバイスいただけますよう、よろしくお願いします。
guest

回答2

0

質問の内容からして
スマホかタブレットで端末の画面上向きの方位角を取りたいと言う話だと思います。

普通のGPSで方位角は取れないので
地磁気センサと加速度センサで取ることになります。

もし万が一GPSでないといけない場合は
GPSコンパスを付けてください。

投稿2017/05/19 05:23

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vanille

2017/05/19 07:53

ozwkさん、ありがとうございます。大変参考になります。私のレベルでは難しいので、この方向で社内で聞きながらやってみます。またどうぞよろしくお願いします。
Lhankor_Mhy

2017/05/19 08:00

横からですが、ちょっと触った感じですと、webkitCompassHeadingはデバイスの向きを示していると思います。あれはGPSの値を返すわけではないみたいです。
guest

0

ベストアンサー

方角の取得ならいくつか情報がありますが、実際に実機で試してみないと動くかわかりません。

【デバイスの方向の検出 - Web API インターフェイス | MDN】
https://developer.mozilla.org/ja/docs/Web/API/Detecting_device_orientation

【デバイスの傾き、方角、加速度を取得できる「Device Orientation Event」 – AnTytle】
http://www.antytle.com/js/device-orientation-event

【一部端末で方角がwebkitCompassHeadingで取得できなくなっている?ので実装した[iOS,Android] - Qiita】
http://qiita.com/umi_kappa/items/38499c03792b2aac49ad

【JavaScriptで位置情報を取得する方法(Geolocation API)】
https://syncer.jp/how-to-use-geolocation-api

投稿2017/05/18 16:06

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vanille

2017/05/19 01:07

kei344さんいつもありがとうございます。大変助かります。何通りか作成して、担当者に現場で試してもらいたいと思います。またどうぞよろしくお願いします。
kei344

2017/05/19 10:25

すみません、提示した中では「Geolocation API」以外は方角に関係なく単に「デバイスの向き」を取るだけのようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問