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

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

ただいまの
回答率

88.59%

googlemap上にgeojsonファイルに書かれてある位置情報をマーカーしたい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,487

benigmaet

score 18

建物の位置情報が大量に乗っているgeojsonファイルを用いてgoogle map上にマーカーを置きたいです。
以下のサイトと同じようにデモをしたいです。
参考サイト

APIkeyは自分のAPIkeyを入れていますが、ここでは都合上消させていただきます。

今のところ、google mapは表示されるのですがマーカーはつかず...
ご助力をお願いします

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<title>geojson</title>
<style type="text/css">
html, body, #map-canvas {
height: 100%;
margin: 0px;
padding: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?key=APIkey&callback=initMap"></script>
<!-- D3.jsを読み込む -->
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>

<script>
google.maps.event.addDomListener(window, 'load', function() {

    //Google Maps初期化
    var map = new google.maps.Map(document.getElementById('map-canvas'), {
        center: {lat:37.953144299100003, lng: 139.14128375000001 },
        zoom: 12
    });

    //GeoJSONデータ読み込み
    d3.json('niigata.geojson', function(data) {
        //データレイヤーに追加
        map.data.addGeoJson(data);
        //イベント(マーカークリック時)を設定
        map.data.addListener('click', mouseClick);
    });

    function mouseClick(e) {
        //features->propertiesのaddressデータをクリック時に表示する
        alert(e.feature.getProperty('address'));
    }

});



    </script>
  </head>
    <div id="map-canvas"></div>
  </body>
</html>

geojsonの記述はもう少し長いのですが、省略しました。
geojsonのファイル名はniigata.geojsonです。

{
"type": "FeatureCollection",
"name": "niigata",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::4612" } },
"features": [
{ "type": "Feature", "properties": { "P20_001": "15101", "P20_002": "あかしあ公園", "P20_003": "新潟県新潟市北区松浜3丁目19番地8", "P20_004": "一時避難場所", "P20_005": 1700, "P20_006": 3401, "P20_007": 0, "P20_008": 0, "P20_009": 0, "P20_010": 0, "P20_011": 0, "P20_012": 1, "レベル": 1, "備考": null, "緯度": 37.953144299100003, "経度": 139.14128375000001, "NO": "1" }, "geometry": { "type": "Point", "coordinates": [ 139.141283750000014, 37.953144299100003 ] } },
{ "type": "Feature", "properties": { "P20_001": "15101", "P20_002": "おやま公園", "P20_003": "新潟県新潟市北区木崎837番地30", "P20_004": "一時避難場所", "P20_005": 2146, "P20_006": 4292, "P20_007": 0, "P20_008": 0, "P20_009": 0, "P20_010": 0, "P20_011": 0, "P20_012": 1, "レベル": 1, "備考": null, "緯度": 37.934128039100003, "経度": 139.18262866000001, "NO": "2" }, "geometry": { "type": "Point", "coordinates": [ 139.18262866, 37.934128039100003 ] } },
{ "type": "Feature", "properties": { "P20_001": "15101", "P20_002": "かやま保育園", "P20_003": "新潟県新潟市北区嘉山1-2-41", "P20_004": "避難所", "P20_005": 276, "P20_006": 553, "P20_007": 1, "P20_008": 0, "P20_009": 0, "P20_010": 0, "P20_011": 0, "P20_012": 0, "レベル": 1, "備考": null, "緯度": 37.912491, "経度": 139.21868, "NO": "3" }, "geometry": { "type": "Point", "coordinates": [ 139.21868, 37.912491 ] } },
{ "type": "Feature", "properties": { "P20_001": "15101", "P20_002": "さくら公園", "P20_003": "新潟県新潟市北区白新町4丁目54番1号", "P20_004": "一時避難場所", "P20_005": 2120, "P20_006": 4240, "P20_007": 0, "P20_008": 0, "P20_009": 0, "P20_010": 0, "P20_011": 0, "P20_012": 1, "レベル": 1, "備考": null, "緯度": 37.914792539099999, "経度": 139.21185556, "NO": "4" }, "geometry": { "type": "Point", "coordinates": [ 139.21185556, 37.914792539099999 ] } }
]
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

こちらで、質問内容のソースそのまま、jsonファイルもそのまま、キーだけ自分のものにしたところ、きっちり動いてマーカーも付いています
なので、たぶん、jsonファイルまでのパスが間違っているとか、そんなところじゃないでしょうか?

デベロッパーツールを開いて、Consoleのところに404エラーが出ていませんか?

-- 追記 --
もしくは、jsonファイルの省略して削除した部分に、syntax errorがあったとか、、。

-- 追記 --
API呼び出しのところのキーの後に続く、callback=initMapは、スクリプト上該当箇所が見当たらないので不要かと思います。

パラメータのcallback=initMapは、APIが読み込み後にinitMap()を実行するという意味になります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/31 14:43

    簡易サーバーを立ててローカルでじっこうしてみたところ、解決できました。ありがとうございました。

    キャンセル

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

  • ただいまの回答率 88.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る