Google マップでKMLの情報が正しく表示されなくなりました

このQ&Aのポイント
  • 最近、Google マップでKMLの情報が正しく表示されなくなっている問題が発生しています。
  • KMLファイルを作成し、Google マップのマイマップで利用していたのですが、最後のデータのみ表示されるようになりました。
  • 問題の原因や解決策についてわかる方、教えてください。
回答を見る
  • ベストアンサー

Google マップ でKMLの情報が正しく表示されなくなりました。

Google マップ でKMLの情報が正しく表示されなくなりました。 早速ですが、以下内容のKMLファイルを作成し、Google マップのマイマップを利用していたのですが、 いつの間にか最後のデータ(例だと99のみ)しか表示されなくなってしまいました。 何か原因があるのでしょうか。内容は何も変更していません。 よろしくお願いいたします。 ---------- <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Placemark> <name>施設名</name> <description>役職:氏名/住所:住所/TEL:電話番号</description> <Style><IconStyle><Icon><href>http://maps.google.co.jp/mapfiles/ms/icons/red-dot.png</href></Icon></IconStyle></Style> <Point> <extrude>1</extrude> <altitudeMode>relativeToGround</altitudeMode> <coordinates>経度,緯度,0</coordinates> </Point> </Placemark> ↓ここから下は個別のデータです(約150件)。↓ <Placemark> <name>施設名1</name> <description>役職1:氏名1/住所1:住所/TEL:00-0000-0000</description> <Style><IconStyle><Icon><href>http://maps.google.co.jp/mapfiles/ms/icons/red-dot.png</href></Icon></IconStyle></Style> <Point> <extrude>1</extrude> <altitudeMode>relativeToGround</altitudeMode> <coordinates>000.000000,00.000000,0</coordinates> </Point> </Placemark> <Placemark> <name>施設名2</name> <description>役職2:氏名2/住所2:住所/TEL:00-0000-0000</description> <Style><IconStyle><Icon><href>http://maps.google.co.jp/mapfiles/ms/icon s/red-dot.png</href></Icon></IconStyle></Style> <Point> <extrude>1</extrude> <altitudeMode>relativeToGround</altitudeMode> <coordinates>000.000000,00.000000,0</coordinates> </Point> </Placemark> ・・・ <Placemark> <name>施設名99</name> <description>役職99:氏名99/住所99:住所/TEL:00-0000-0000</description> <Style><IconStyle><Icon><href>http://maps.google.co.jp/mapfiles/ms/icons/red-dot.png</href></Icon></IconStyle></Style> <Point> <extrude>1</extrude> <altitudeMode>relativeToGround</altitudeMode> <coordinates>000.000000,00.000000,0</coordinates> </Point> </Placemark> </kml> ----------

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

 確か、Googleマップのマイマップは100箇所しか地点登録が出来ず、 100箇所を超える場合は別の地図にするしかなかったような気がします。 100箇所超えてませんか。  いずれにせよ、マイマップは今ひとつ不安で、GoogleサイトのDBのキャッシュ の都合で、せっかく登録したデータがなくなっちゃたりする事もあるので、 私は、無くなっても後悔しない物にしか使いません。 もし手元に作成されたKMLファイルがダウンロードしてあるのなら、ご自身の サイトにアップして、Javascriptで「Google Maps Api」の方を使ってKML をロードするのをお勧めします。 Google Maps Api」は現在 Ver3.0 がリリースされており、このバージョンでは アカウントキーの取得が不要になっております。またKmlLayerクラスが新たに 実装されURL指定でKMLを表示できます。 サンプルはこんな感じです。 ※KMLファイルはあなたのサイトにおいてフルURLで指定してください。  (未検証ですがクロスドメインアクセスは恐らくだめではないかと) ------------------------ <!DOCTYPE html> <html lang="ja"> <head> <meta charset=UTF-8"> <title>KMLをロードして地図を表示</title> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> google.maps.event.addDomListener(window, 'load', function() { var mapdiv=document.getElementById("map_canvas"); var myOptions={ mapTypeId: google.maps.MapTypeId.ROADMAP,scaleControl:true}; map = new google.maps.Map(mapdiv, myOptions); var ctaLayer = new google.maps.KmlLayer('ここにKMLのURLを書く'); ctaLayer.setMap(map); }); </script> </head> <body> <div id="map_canvas" style="width:640px;height:480px;border:2px solid black;">/div> </body> </html> ------------------------ KMLがこわれてないかどうか、参考サイトで試せます。

untold99
質問者

お礼

ありがとうございました。 100箇所までの制限も知りませんでした。 今まで100以上をアップしても問題なく動いていましたので。 もう少し対策を考えてみます。

関連するQ&A

  • google mapsにxml形式のデータを表示させるにはどうしたらいいでしょうか?

    情報系初心者です。 以下のようなkml形式のデータを自分のサイト内のgooglemapsに表示させたいと考えています。 <?xml version="1.0" encoding="UTF-8" ?> - <kml xmlns="http://earth.google.com/kml/2.1"> - <Document> <name>vic</name> - <Style id="LineStyle"> - <LineStyle> <color>7f0000ff</color> <width>4</width> </LineStyle> </Style> - <Placemark> <description>No+description+available</description> <name>Shortest Path</name> <styleUrl>#LineStyle</styleUrl> - <MultiGeometry> - <LineString> <coordinates>139.657773,35.524891 139.657755370438,35.5246693712236</coordinates> </LineString> - <LineString> <coordinates>139.657755370438,35.5246693712236 139.657943725586,35.5246543884277</coordinates> </LineString> - <LineString> <coordinates>139.657943725586,35.5246543884277 139.658294677734,35.5246849060059</coordinates> </LineString> - <LineString> <coordinates>139.658294677734,35.5246849060059 139.658584594727,35.5247497558594 139.658782958984,35.5248184204102 139.658981323242,35.5248794555664 139.659103393555,35.5249328613281 139.659255981445,35.5250205993652 139.659393310547,35.5251121520996 139.659530639648,35.5252304077148 139.659713745117,35.5253944396973 139.659851074219,35.5255699157715 139.659973144531,35.5257263183594 139.660095214844,35.5258750915527</coordinates> </LineString> - <LineString> <coordinates>139.660217285156,35.5260543823242 139.660095214844,35.5258750915527</coordinates> </LineString> - <LineString> <coordinates>139.660279417479,35.5259348970889 139.660217285156,35.5260543823242</coordinates> </LineString> - <LineString> <coordinates>139.660279417479,35.5259348970889 139.66022,35.525904</coordinates> </LineString> </MultiGeometry> </Placemark> </Document> </kml> javascriptの知識などほとんどないので、googlemapsを載せている自分のサイトのコード内で、どんなことを書けば上のkml形式のデータ を地図上に表せるかが分かりません。 どなたか詳しい方お教えいただけませんでしょうか。

  • グーグルマップの初期表示地点のリストボックスでの選択

    宜しくお願いします。 以下のような、XMLファイルを使用してグーグルマップに複数のマーカーを表示させるスクリプトが 在ります。XMLファイルは、kmlsample1.kml、kmlsample2.kml、kmlsample3.kmlを設定し、 スクリプト中の[URL指定]の箇所に各ファイルの存在するフォルダを絶対パスで指定します。 HTMLにあるリストボックスでマーカーを地図に表示させるkmlファイルを選択するのですが、 このスクリプトでは、どのkmlファイルを選んでも初期の地図の表示中心地点がJavaスクリプト中の 「//地図を作製」から2行下で指定されている(43.068625, 141.350801)の地点でしか、 表示されない仕様になっています。 選んだセレクトボックスにより3通りの表示地点が現れるようにしたいのですが、 方法が分かりません。 どの様に書き換えれば良いのかご教授をお願い致します。 ========= Java・HTML ================= <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>Google Maps </title> <script src=""http://maps.google.co.jp/maps?file=api&amp;v=2&amp;key=[GoogleMaps APIキー]"type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var map; var geoXml = null; function load() { if (GBrowserIsCompatible()) { //地図を作成 map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(43.068625, 141.350801), 12); ←*ABCによって変更したい map.addControl(new GLargeMapControl()); markerChange(document.getElementById("markerSelect")); } } function markerChange(selectBox){ var kmlFile = selectBox.options[selectBox.selectedIndex].value; if(geoXml){ map.removeOverlay(geoXml); } geoXml = new GGeoXml("http://[URL指定]/" + kmlFile); map.addOverlay(geoXml); } GEvent.addDomListener(window, "load", load); GEvent.addDomListener(window, "load", prettyPrint); GEvent.addDomListener(window, "unload", GUnload); //]]> </script> </head> <body> <TR><font size="3">例:セレクトボックスで選択したマーカーを表示する(KML)</font></TR> <div id="map" style="width: 1000px; height: 600px"></div> <p>各区にある店舗<br /> <select id="markerSelect" onChange="javascript:markerChange(this);"> <option value="kmlsample1.kml" selected="selected">A区</option> <option value="kmlsample2.kml">B区</option> <option value="kmlsample3.kml">C区</option> </select> ========================XMLファイル例「kmlsample1.kml」=========== <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <Folder> <name>A区の物件</name> <Placemark> <name>第一マンション</name> <description><![CDATA[<a href="" target="_blank">詳細</a>]]> </description> <Point><coordinates>14○.357234, 4○.038694, 0</coordinates></Point> ←○は任意の半角数字 </Placemark> <Placemark> <name>第二マンション</name> <description><![CDATA[<a href="" target="_blank">詳細</a>]]> </description> <Point><coordinates>14○.334967, 4○.035413, 0</coordinates></Point> ←○は任意の半角数字 </Placemark> </Folder> </Document> </kml> </body> </html>

  • webサービス上のkmlをgooglemapsに表示させたい

    googlemapsとルート表示のwebapiをマッシュアップ したいと考えています。 GGeoXmlでルートをmaps上に表示したく、 以下のようなコードを作りましたが 地図自体も表示されなくなってしまいました。 それほど詳しくないので、 わかりやすく教えていただけると助かります。 apikeyの部分はサービスを提供していただいて いる身としての責任上mykeyと表示しておりますが ご理解いただければと思います。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2&key=mykey" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //<![CDATA[ function onLoad() { var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(38.348, 140.839), 13); } var geoXml = new GGeoXml(http://api.cirius.co.jp/wrs/1.0.0/suuchi/lonlat/shortest_path.kml?start=140.839%2038.348&end=140.899%2038.355&sridIn=4301&api_key=mykey, function(){ map.addOverlay(geoXml); }); //]]> </script> </head> <body onload="onLoad()"> <div id="map" style="width: 500px; height: 350px;">&nbsp;</div> </body> </html> 以下はwebサービスのルート情報のkmlファイルです。 途中省略しております。 <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body><kml xmlns="http://earth.google.com/kml/2.1"> <document> <name>WebRouting Service</name> <style id="LineStyle"> <LineStyle> <color>7f0000ff</color> <width>4</width> </LineStyle> </style> <placemark> <description>No+description+available</description> <name>Shortest Path</name> <styleurl>#LineStyle</styleurl> <multigeometry> <linestring> <coordinates> 140.851,38.348 140.852,38.347 </coordinates> </linestring> <linestring> <coordinates> 140.853,38.343 140.854,38.343 140.855,38.344 140.856,38.345 </coordinates> </linestring> <linestring> <coordinates> 140.858,38.343 140.860,38.343 </coordinates> </linestring> <linestring> <coordinates> 140.863,38.343 140.899,38.555 </coordinates> </linestring> </multigeometry> </placemark> </document> </kml></body></html> どなたか詳しい方、よろしくお願いします。

    • ベストアンサー
    • AJAX
  • Google Maps:同マップ内でそれぞれのアイコンの表示・非表示を切り替えるには

    いつもお世話になっております。 Google Mapsを利用し、同マップ内でそれぞれのアイコンの表示・非表示を切り替えたいという要望を受けたのですが、やりかたがわからず途方に暮れています。 - 要望 ------------------------------------------- 1.Google Maps内にカテゴリ1~6に属する、デザインがちがうアイコンをそれぞれ3つずつ表示。 2.このアイコンを、カテゴリ群ごとにボタンか何かで表示・非表示を切り替える。 -------------------------------------------------- [1]に関してはできたのですが、[2]のやり方がわかりませんでした。 代替案として、カテゴリごとにGoogle Mapsを読み込むhtmlを変えて iframe内で表示するというのを出したのですが、 “同マップ上でアイコンだけ表示したり消したり”したいとの ことでした。 [1]を実現するのに使用したコードが下記になります。 (※マーカーの関するスクリプトだけ外部ファイル化し、bodyにonloadでcreateMapを読み込んでいます) ----------------------------------------------------- function createMap() { var map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GOverviewMapControl()); map.setCenter(new GLatLng(緯度, 経度), 13); var icon = new GIcon(); icon.image = "marker.png"; icon.shadow = "shadow.png"; icon.iconSize = new GSize(20, 34); icon.iconAnchor = new GPoint(10, 34); icon.infoWindowAnchor = new GPoint(7, 1); var icon2 = new GIcon(); icon2.image = "marker2.png"; icon2.shadow = "shadow.png"; icon2.iconSize = new GSize(20, 34); icon2.iconAnchor = new GPoint(10, 34); icon2.infoWindowAnchor = new GPoint(7, 1); var point001 = new GLatLng(緯度, 経度); var marker001 = new GMarker(point001, icon); map.addOverlay(marker001); GEvent.addListener(marker001, 'click', function() { marker001.openInfoWindowHtml('<div style="width: 300px">吹き出し<\/div>'); }); var point002 = new GLatLng(緯度, 経度); var marker002 = new GMarker(point002, icon2); map.addOverlay(marker002); GEvent.addListener(marker002, 'click', function() { marker002.openInfoWindowHtml('<div style="width: 300px">吹き出し<\/div>'); }); } ---------------------------------------------- ここまで 方法について、ご存じの方がいらっしゃったら 教えていただきたいです。 よろしくお願いいたします!

  • google mapで二番目以降のマップが表示されない

    自作のマーカーを使い、マーカーをクリックすると吹き出しが出るようにして、マップ上2か所にマーカーを付けたのですが、2番目のマーカーが全く反映されません。 下に書いたものがそのコードなのですが、見直してもどこにミスがあるのかわかりません… どなたか解決策をお願いします… <script type="text/javascript"> //<![CDATA[ var map = new GMap(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.centerAndZoom(new GPoint(135.384521484375,34.73709847578162), 8 ); var icon = new GIcon(); icon.image = " pngイメージ画像 "; icon.shadow = " pngイメージ画像 "; icon.iconSize = new GSize(12, 20); icon.shadowSize = new GSize(22, 20); icon.iconAnchor = new GPoint(6, 20); icon.infoWindowAnchor = new GPoint(5, 1); // 1番目位置 var point = new GPoint(省略); var marker = new GMarker(point,icon); map.addOverlay(marker); // 1番目吹き出し GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("<div style='width:350px;font-size:12px;' ><table><tr><td><img src=イメージ画像 ><br><a href=\"ページへのリンク\"target=\"blank\" >説明文<br><br></td></tr></table></div>");}); var marker = createMarker(point,html); map.addOverlay(marker); // 2番目位置 var point = new GPoint(省略); var marker = new GMarker(point,icon); map.addOverlay(marker); // 2番目吹き出し GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("<div style='width:350px;font-size:12px;' ><table><tr><td><img src=イメージ画像 ><br><a href=\"ページへのリンク\"target=\"blank\" >説明文<br><br></td></tr></table></div>");}); var marker = createMarker(point,html); map.addOverlay(marker); //]]> </script>

  • google map

    こんにちは。最近「google map」を使いはじめまして、 いろいろと地図を作って試しているのですが、わからない ことがありまして。。お願い致します。 google mapの「サイドバー」と「吹き出しのタブ」の 両方を同時に表示させたいのですが、どのようにすれば よろしいのでしょうか。 「サイドバー」と「吹き出しタブ」を別々に表示させること はできたのですが、どうしても両方を同時に表示させること ができません。 サイドバーは以下のような感じで作っています。 function createMarker(point, name, html) { var marker = new GMarker(point); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); gmarkers[i] = marker; htmls[i] = html; sidebar_html += '<a href="javascript:myclick(' + i + ')">' + name + '<\/a><br />'; i++; return marker; } function myclick(i) { gmarkers[i].openInfoWindowHtml(htmls[i]); } 吹き出しタブは以下のような感じで作りました。 function createTabbedMarker(point,html1,html2,label1,label2,n) { var marker = new GMarker(point,icon[n]); GEvent.addListener(marker, "click", function() { marker.openInfoWindowTabsHtml([new GInfoWindowTab(label1,html1), new GInfoWindowTab(label2,html2)]); }); return marker; } どうぞ、よろしくお願い致します。

  • GOOGLE MAPを別ウインドで表示

    ホームページ作成初心者です。 ネットの検索で、以下スクリプトで自分の作成したホームページにGoogleMAPを表示することができました。しかしこのやり方ですと、表示する地図ごとにHTMLで記述する必要があるように思います。当方は表示したい地図が100個以上あるので全てHTMLファイルを作成するのは困難です。できればホームページに地図ボタンを100個作成し、ボタンを押されたときに引数として必要パラメータを渡して、地図表示を行うHTMLファイルをひとつ用意しておいて、そのHTMLファイルで全ての地図表示をするように変更したいのですが、どうしたらよいかご存知の方がいましたら教えて頂けないでしょうか? 以下が使用しているGoogleMAP表示のソースです。 <body> <div id="map" style="width: 800px; height: 180px"></div> <div id="message"></div> <script type="text/javascript"> //<![CDATA[ var map = new GMap(document.getElementById("map")); map.addControl(new GSmallMapControl()); // 3.で取得した 緯度、経度を (経度, 緯度)の順で入力する // // new GPoint(139.711606, 35.646643) ←この部分 // var point = new GPoint(139.48270082473755, 35.90869157631627); map.centerAndZoom(point, 0); var icon = new GIcon(); // マーカーのアイコン画像指定 icon.image = "map_arrow.png"; // マーカーの影アイコン画像指定 icon.shadow = "map_arrow_shadow.png"; // アイコンのサイズを記述 icon.iconSize = new GSize(34, 25); // 影アイコンのサイズを記述 icon.shadowSize = new GSize(34, 25); icon.iconAnchor = new GPoint(1, 23); icon.infoWindowAnchor = new GPoint(10, 10); // もう一度マーカーのアイコン画像指定 icon.transparent = "map_arrow.png"; var marker = new GMarker(point, icon); GEvent.addListener(marker, "click", function() { // // marker.openInfoWindowHtml("<b><a href='http://www.goo.ne.jp/'>マル広</a></b>" ); }); map.addOverlay(marker); //]]> </script> </body> 以上です。なにぶん初心者なので、他に必要な情報など ありましたらご教示お願いします。 よろしくお願いします。

  • googleマップが表示されない。

    Google Maps APIを使用しホームページに地図を載せているのですが、自分自身のパソコンではFTPイメージを出力した出力先html、ネット上でもしっかりと地図は表示されているのですが、他の人のパソコンで見てみると表示しません。 下記のようにGoogle Maps APIでキーを取得し作成したのですが、どこかおかしいところがあるのでしょうか?申し訳ありませんがアドバイスよろしくお願いします。 <!-- key=*** の***部分をグーグル( http://www.google.com/apis/maps/signup.html )から取得し、入れ替える --> <SCRIPT src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAUV0srDj6343wV8Rdpy-xRRQ2GBzO3UXWtLA5PQfCol6gfChjOhS-izw7H3T2ywNEuQOminx4rgEgGw" type="text/javascript"></SCRIPT> <!-- ここへ地図を出力します↓ 地図の大きさの変更はwidthとheightの数値を使います。 --> <div id="map" style="width: 500px; height: 500px"> </div> <SCRIPT type="text/javascript"> //<![CDATA[ var map = new GMap(document.getElementById('map')); map.addControl(new GLargeMapControl()); //所在地の座標設定 var lon = ○○;//経度 var lat = ○○;//緯度 var myoffice = new GPoint(lon,lat); //所在地を中心にする map.centerAndZoom(myoffice , 0);// 数値部分を変えると詳細-広域に変更できます。0-17   //中心を所在地と別に設定する場合   //map.centerAndZoom(new GPoint(○○, ○○) , 0); // 所在地の地点にアイコンを設定する // Create a base icon for all of our markers that specifies the // shadow, icon dimensions, etc. var baseIcon = new GIcon(); baseIcon.shadow = 'http://www.google.com/mapfiles/shadow50.png'; baseIcon.iconSize = new GSize(20, 34); baseIcon.shadowSize = new GSize(37, 34); baseIcon.iconAnchor = new GPoint(9, 34); baseIcon.infoWindowAnchor = new GPoint(9, 2); baseIcon.infoShadowAnchor = new GPoint(18, 25); var icon = new GIcon(baseIcon); icon.image = 'http://www.google.com/mapfiles/markerA.png'; //所在地を表示する var marker = new GMarker(myoffice,icon); //var marker = new GMarker(myoffice);// デフォルトのマーカー画像を利用する場合 map.addOverlay(marker); //]]> </SCRIPT>

  • jquery ui mapについて

    jquery ui mapを使って以下のようなソースで マーカーを表示させ、MarkerClustererでマーカをまとめています。 $('#map_canvas').gmap({ 'center': new google.maps.LatLng(35.873686,139.657075)}).bind('init', function(evt, map) { var data = new Array(); data.push({lat:'35.681382', lng:'139.766084',name:'東京駅',images:'http://google-maps-icons.googlecode.com/files/friends.png'}); data.push({lat:'35.684801', lng:'139.766086',name:'大手町駅',images:'http://google-maps-icons.googlecode.com/files/friends.png'}); for ( var i = 0; i < data.length; i++ ) { $('#map_canvas').gmap('addMarker', { 'icon': data[i].images,'position': new google.maps.LatLng(data[i].lat, data[i].lng) } ).click(function() { $('#map_canvas').gmap('openInfoWindow', { 'content' : data[i].name }); }); } $('#map_canvas').gmap('set', 'MarkerClusterer', new MarkerClusterer(map, $(this).gmap('get', 'markers'))); }); マーカーの緯度経度とインフォウィンドウの内容を配列にしています。 配列の緯度経度からマーカーは表示できたのですが、 マーカーをクリックすると、インフォウィンドウが開かず、「undefined」となります。 わかる方、ご教授宜しくお願いいたします。

  • 表示がされません。

    なぜでしょうか。 <pre> <code> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>タイトル</title> <meta name="description" content="練習サイトそのいち"> <link rel="icon" type="image/x-icon" href="img/favicon.ico"> <meta name="viewport" content="width=device-width, initial-scale=1"> </code> </pre>