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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

1回答

3918閲覧

巨大なGeoJSONファイルをMaps JavaScript APIで高速に読み込みたい

jessicazu

総合スコア22

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

1クリップ

投稿2019/01/06 12:49

約26MBという巨大なGeoJSONオブジェクトを持っています。これは、日本全国のDID(人口集中地区)のポリゴンで、巨大で複雑なものになっています。
これをGoogleのMaps JavaScript APIに表示させたいのですが、そのまま読み込むと10秒ほどのラグがある上、ブラウザがメモリを大量に消費していまいます。
これをなるべく低負荷で読み込んで表示するためのヒントを伺いたいです。ちなみに、RailsアプリケーションのHTML内でAPIを呼び出しています。
また、mapshaperという便利なツールを用いて、元は50MBほどであったGeoJSONファイルを形が崩れない程度に圧縮して使っています。これで少しは改善されましたが、まだ負荷が大きいです。

ぜひ、皆さんの助言を頂けたらと思います。よろしくお願い致します。

HTML

1<div class="map"> 2 <div id="map"></div> 3</div> 4 5<script> 6 var mapDiv = document.getElementById("map"); 7 var map = new google.maps.Map( mapDiv, { 8 center: {lat: 38.22887679, lng: 135.99164979}, 9 zoom: 5, 10 }); 11 map.data.loadGeoJson('DID.json'); 12 map.data.setStyle({ 13 fillColor: 'red', 14 fillOpacity: 0.2, 15 strokeColor: 'red', 16 strokeOpacity: 0.2, 17 strokeWeight: 1 18 }); 19</script>

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

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

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

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

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

guest

回答1

0

ベストアンサー

地域ごとなどに分割するか、バイナリベクトルタイルにしてしまうのが軽量かもしれません。(未検証)

【バイナリベクトルタイルの作り方 – GUNMA GIS GEEK】
https://shimz.me/blog/leaflet-js/5354

投稿2019/01/06 17:28

kei344

総合スコア69400

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

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

jessicazu

2019/01/09 18:42

ご回答ありがとうございました。 アドバイスを元に考えたところ、全国など広域を表示するズームレベルでは大幅に圧縮しても問題ないことを利用して、地域とズームレベルごとにJSONを分割する方法に決めました。 少し大変な作業ですが、実現できそうです。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問