Googlemapb api 複数のマーカー表示に
基礎的なことかもしれませんが、結構調べたりしても分からなかったので、教えてほしいです。
Googlemap api を使った複数のマーカー表示を$getJSON(jQuery)を使用しようして表示させたいのですが、表示できません。
どこがおかしいか教えてください。
【HTML】
1.<!DOCTYPE html>
2.<html>
3.<head>
4.<meta charset="UTF-8">
5.<title>map</title>
6.<style type="text/css">
7.html,body,#map {
8.height: 100%;
9.}
10.</style>
11.</head>
12.<body>
13.<div id="map"></div>
14.<script type="text/javascript" src="map.js"></script>
15.<script type="text/javascript" src="jquery-3.6.0.min.js"></script>
16.<script async defer
17.src="https://maps.googleapis.com/maps/api/js?key=【APIキー】&callback=initMap">
18.</script>
19.</body>
20.</html>
【JavaScript】
1.var map;
2.var marker = [];
3.var data = [];
4.var center = {lat: 36.72073,lng: 137.27112};
5.function initMap() {//地図の作成
6.map = new google.maps.Map(document.getElementById('map'), { // #mapに地図を埋め込む
7. center: center,// 地図の中心を指定
8. zoom: 15 // 地図のズームを指定
9. });
10. $.getJSON("aaaaa.json", function(json){
11. for (var i = 0; i <= json.length-1; i++) {
12. data.push(
13. {
14. 'name': json[i].name,
15. 'lat': json[i].lat,
16. 'lng': json[i].lng
17 });
18 };
19. for (var i = 0; i < data.length; i++) {
20. markerLatLng = {lat: data[i]['lat'], lng: data[i]['lng']};
21. marker[i] = new google.maps.Marker({ //マーカーの追加
22. position: markerLatLng,//マーカーを立てる位置を指定
23. map: map//マーカーをたてる地図を指定
24. });
25. }
26 });//jsonの閉じ
27.}
【JSON】
[
{
"name": "名古屋駅",
"lat": 35.170897,
"lng": 136.881558
}, {
"name": "大名古屋ビルヂング",
"lat": 35.172311,
"lng": 136.884568
}, {
"name": "国際センター駅",
"lat": 35.172038,
"lng": 136.887701
}
]
お礼
回答ありがとうございます。 下記、不具合が起きているjQueryまとめました。 ※印が不具合の内容です。 1) 追尾式ナビゲーション ※追尾しない。スクロールして更新ボタンを押すとスクロールした場所にナビゲーションが表示 var ua = navigator.userAgent; if (ua.indexOf('iPhone') != -1 || ua.indexOf('iPad') != -1 || ua.indexOf('iPod') != -1 || ua.indexOf('Android') != -1) { //iPhone、iPad、iPod、Androidの場合何もしない。 } else{ //それ以外の場合はnavをトップ固定。 $(function() { var nav = $('#gnav'); var navTop = nav.offset().top; $(window).scroll(function () { var winTop = $(this).scrollTop(); if (winTop >= navTop) { nav.css({ 'position': 'fixed', 'top':'0', 'z-index': '1000', 'width': '100%', }); } else if (winTop <= navTop) { nav.css({ 'position': 'static', 'top': '', 'background': '' }); } }); }); } 2) ページのtopに戻る ※スクロールしたらボタンが表示されるのですが、更に20px程進むと消えます $(function() { var topBtn = $('#page-top'); topBtn.hide(); //スクロールが100に達したらボタン表示 $(window).scroll(function () { if ($(this).scrollTop() > 100) { topBtn.fadeIn(); } else { topBtn.fadeOut(); } }); //スクロールしてトップ topBtn.click(function () { $('body,html').animate({ scrollTop: 0 }, 500); return false; }); }); 3) ページ内リンクのスムーズスクロールやマウスオーバーでキャプションを表示してくれるjQueryのプラグインは動作しています。 上記であげた内容は <script type='text/javascript' charset='utf-8' src='http://maps.googleapis.com/maps/api/js?&sensor=false'></script> こちらを消すと全て作動します。 - jQueryは全てのバージョンを試しました。 4) googlemapは下記になります。 var gmg = new google.maps.Geocoder(), map, center, mk ; gmg.geocode({ 'address': 'ここに地図の住所が入ります。'//表示したい場所 }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) {//ジオコードが成功したかどうかチェック center = results[0].geometry.location; initialize(); mk = new google.maps.Marker({//ここからマーカーの設定 map: map, position: results[0].geometry.location, icon: {//マーカー画像のパスを設定 url: '/images/hoge.png', anchor: {//マーカーを表示させる場所を設定 x: 55, y: 90 }}, title: 'bounty'//マーカー画像のtitle }); } }); function initialize() {//初期化 var options = { center: center, zoom: 18, mapTypeId: google.maps.MapTypeId.ROADMAP, scrollwheel: false, panControlOptions: { position: google.maps.ControlPosition.TOP_RIGHT }, zoomControlOptions: { position: google.maps.ControlPosition.TOP_RIGHT }, mapTypeControlOptions: { position: google.maps.ControlPosition.TOP_CENTER }, styles: [{ stylers: [{//色合いを設定 hue: "#244fae"},//カラーコード { gamma: 1.50},//ガンマ値 { saturation: 0}]}]//彩度 }; map = new google.maps.Map($("#gm").get(0), options);//セレクタ内に地図取得 } 長くなりましたが、不明な点があればまたご連絡ください。 よろしくお願いします。
補足
やっぱり分からないですよね? ありがとうございました。