• 締切済み

Google Map APIの利用について(URLを表示したい)

Google mapのAPIを利用しているのですが、http://maps.google.co.jp/の[このページのリンク]みたいに表示しているマップの位置を記憶したURL[http://maps.google.co.jp/maps?f=q&hl=ja&geocode=&q=%E5%92%8C%E6%AD%8C%E5%B1%B1%E7%9C%8C&ie=UTF8&z=9]みたいなものを作ることはできないでしょうか? 「○○の地図」というリンクを貼ったとして、クリックすると該当のマップへ(サイト内のGoogle map APIへ)ジャンプしたいのですが、全くわからず。。お願いします!

  • hayax
  • お礼率66% (4/6)
  • PHP
  • 回答数5
  • ありがとう数6

みんなの回答

  • Nii
  • ベストアンサー率48% (79/162)
回答No.5

>ズームや移動のツールと背景がグレーの枠のみになっています。 上記に関しましては、再現できませんので^^; >エラーは表示されていないです。 IEの場合ですと、左下の方に「ページが表示されました」と出ている前に、黄色の三角の中に!が表示されていませんか? @もう一箇所?が必要な行がありました。<( ̄∇ ̄)ゞゴメリンコ~♪ urlAny = url.split("?"); http://www.mandala.ne.jp/gmap.html http://www.mandala.ne.jp/gmap.html?34.232517,135.192087 http://www.mandala.ne.jp/gmap.html?43.063773,141.358033

hayax
質問者

お礼

できました!! 本当に感謝してます。ありがとうございます! 原因はurlAny = url.split("?");でした。 嬉しい~~

  • Nii
  • ベストアンサー率48% (79/162)
回答No.4

>http://ドメイン/map_test.html?address=%E5%92%8C%E6%AD%8C%E5%B1%B1%E7%9C%8C map_test.htmlページを表示した時点で、エラーは出てないのでしょうか? まず思いつく事は、?を削除する時に、必要な?も一緒に削除してしまっている可能性があります。 下記3箇所は?が必要です。 <script src="http://maps.google.com/maps?file=・・・ mapion = "http://www.mapion.co.jp/c/f?uc=1&grp・・・ livedoor = "http://map.livedoor.com/map/?ZM=・・・ 違っていれば補足をお願いします。 ※ひょっとして、WikiでGoogleMapsを表示?

hayax
質問者

補足

いつもご回答ありがとうございます。 >map_test.htmlページを表示した時点で、エラーは出てないのでしょうか? エラーは表示されていないです。 >必要な?も一緒に削除してしまっている可能性があります。 3箇所以外の?を削除しました。map_test.htmlページを表示してもマップが表示されず、ズームや移動のツールと背景がグレーの枠のみになっています。 >※ひょっとして、WikiでGoogleMapsを表示? いえ、通常のHTMLです。 ご教授よろしくお願いします!

  • Nii
  • ベストアンサー率48% (79/162)
回答No.3

>理解ができず。 理解出来ない箇所を書かなければ、アドバイスのしようが/(-_-)ヽコマッタァ >サンプルなどあるところがあれば是非教えてください! ソースそのまま提示してるわけだから^^; 環境によって違うかもしれないが、とりあえず^^; テキストエディッタに-----ここから-----から、-----ここまで-----を貼り付ける。 全角の空白を半角に置き換える。 勝手にリンクになっている前後に?と余計な文字が入ってたので削除 key=に取得済みのキーを登録(キーが不正ならば、検索が出来ない) 文字コードにUTF-8で保存し、サーバへアップ サーバがxxxxx.xxxで、gmap.htmlというファイル名で保存したならば、http://www.xxxxx.xxx/gmap.html?34.050357,135.341235 -----ここから----- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Google Map</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://maps.google.com/maps?file=api&v=2.X&key=" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //<![CDATA[ if (GBrowserIsCompatible()) {  var map;  var marker = null;  function onLoad() {   map = new GMap2(document.getElementById("map"));   //移動や縮尺変更用のボタンを表示   map.addControl(new GLargeMapControl(),new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(5,50)));   //地図/衛星 切り替えボタンを表示   //map.addControl(new GMapTypeControl());   //右下に概要を示す地図を表示   map.addControl(new GOverviewMapControl());   //縮尺定規を表示   map.addControl(new GScaleControl());   //ズームインする際にスムーズに地図を拡大   map.enableContinuousZoom();   //ダブルクリックされた場合にズームイン/アウト   map.enableDoubleClickZoom();   map.addMapType(G_PHYSICAL_MAP);   map.addControl(new GMenuMapTypeControl(true, false));   //キー操作を有効   new GKeyboardHandler(map);   //初期表示位置   url = location.href;   urlAny = url.split("?");   if (typeof urlAny[1] == 'undefined') {    var point = new GLatLng(34.050357,135.341235);   } else {    Any = urlAny[1].split(",");    point = new GLatLng(Any[0],Any[1]);   }   map.setCenter(point, 17);   marker = marker_add(point);   map.setMapType(G_NORMAL_MAP);  }  // 「移動する」ボタンを押されると実行されます  function showAddress(address) {   // GClientGeocoderを初期化   geocoder = new GClientGeocoder();   if (geocoder) {    geocoder.getLatLng(address,function(point) {     if (!point) {      alert(address + " not found");     } else {      bounds = map.getBounds();      zoom = map.getBoundsZoomLevel(bounds);      map.removeOverlay(marker);      map.setCenter(point, zoom);      marker = marker_add(point);      marker_oiw(marker,point);     }    });   }  }  function marker_add(point) {   marker = new GMarker(point,{ draggable:true } );   map.addOverlay(marker);   GEvent.addListener(marker, 'dragend', function() {    point = marker.getPoint();    marker_oiw(marker,point);   });   return marker;  }  function marker_oiw(marker,point) {   dms = googleToDMS(point.toUrlValue());   text = "緯度:" + dms[0] + "度" + dms[1] + "分" + dms[2] + "秒" + " 経度:" + dms[3] + "度" + dms[4] + "分" + dms[5] + "秒";   dms = googleToDMS_jp(point.toUrlValue());   text_jp = "緯度:" + dms[0] + "度" + dms[1] + "分" + dms[2] + "秒" + " 経度:" + dms[3] + "度" + dms[4] + "分" + dms[5] + "秒";   mapion = "http://www.mapion.co.jp/c/f?uc=1&grp=all&nl=" + dms[0] + "/" + dms[1] + "/" + dms[2] + "&el=" + dms[3] + "/" + dms[4] + "/" + dms[5] + "&scl=25000&bid=Mlink";   livedoor = "http://map.livedoor.com/map/?ZM=12&MAP=E" + dms[3] + "." + dms[4] + "." + dms[5] + "N" + dms[0] + "." + dms[1] + "." + dms[2];   marker.openInfoWindow("<table style='text-align: left;' cellpadding='2' cellspacing='2'><tr align='center'><td colspan='2' rowspan='1'>マーカー地点</td></tr><tr><td colspan='1' rowspan='2'>世界測地系</td><td> " + point.toUrlValue() + "</td></tr><tr><td>" + text + "</td></tr><tr><td colspan='1' rowspan='2'>日本測地系</td><td>" + text_jp + "</td></tr><tr><td><a href='" + mapion + "' target='_blank'>mapion</a></td></tr><tr><td></td><td><a href='" + livedoor + "' target='_blank'>livedoor</a></td></tr></table>");  }  function RV(val, n) {   s = Math.pow(10, n);   val = val * s;   val = Math.round(val);   val = val / s;   return val;  }  function DegToDMS(deg) {   var temp = deg;   var newD = Math.floor(temp);   temp = (temp - newD) * 60;   var newM = Math.floor(temp);   temp = (temp - newM) * 60;   var newS = temp;   return new Array(newD, newM, RV(newS, 2));  }  function googleToDMS_jp(point) {  //世界→日本  //(ln:入力経度、la:入力緯度、lng:変換後経度、lat:変換後緯度)   Any = point.split(",");   la = parseFloat(Any[0]);   ln = parseFloat(Any[1]);   lng = ln + la * 0.000046047 + ln * 0.000083049 - 0.010041;   lat = la + la * 0.00010696 - ln * 0.000017467 - 0.0046020;   ladms = DegToDMS(lat);   lndms = DegToDMS(lng);   return new Array(ladms[0],ladms[1],ladms[2],lndms[0],lndms[1],lndms[2]);  }  function googleToDMS(point) {   Any = point.split(",");   la = parseFloat(Any[0]);   ln = parseFloat(Any[1]);   ladms = DegToDMS(la);   lndms = DegToDMS(ln);   return new Array(ladms[0],ladms[1],ladms[2],lndms[0],lndms[1],lndms[2]);  } } //]]> </script> </head> <body onload="onLoad()" style="margin:20px; padding:20px;text-align:center;">  <h1>Google Map 【緯度・経度】検索</h1>  <form action="#" onsubmit="showAddress(this.address.value); return false">   <P>    <input type="text" size="40" name="address" value="和歌山県" />    <input type="submit" value="移動する" />   </P>  </form>  <div id="map" style="width:760px; height:560px; margin:0px; padding:0px;"></div>  <P id="show"></P> </body> </html> -----ここまで-----

hayax
質問者

お礼

ご丁寧にありがとうございます。 早速試してみたのですが、サーバへアップロード後アクセスして、移動するボタンをクリックするとURLが下記のようになり表示しません。 http://ドメイン/map_test.html?address=%E5%92%8C%E6%AD%8C%E5%B1%B1%E7%9C%8C また、[移動する]をクリック後に、 「インターネットサイトhttp://ドメイン/map_test.html?address=%E5%92%8C%E6%AD%8C%E5%B1%B1%E7%9C%8Cを開けません。操作は中断されました。」 とダイアログボックスが表示されます。 ご教授お願いします!

  • Nii
  • ベストアンサー率48% (79/162)
回答No.2

あ、カテゴリがPHPだった^^; 現在表示している地点へのURL生成って事ならば、以前の回答でも、噴出し内に確認用にmapionとlivedoorへのリンクをjavascriptで作ってるから、それが参考になるかも・・・

  • Nii
  • ベストアンサー率48% (79/162)
回答No.1

htmlでページを作っていて、任意の地点を中心にして(URLで指定して)マップを表示させたい?という事でよろしいでしょうか? URLでパラメータを指定して、動的にページを生成するには、PHPか、Perl等を使用すれば簡単に出来ます。 setCenterに指定された緯度と経度を指定するか、住所等が指定されるのならば、showAddressへ値をセットして書き出せばいいかと思います。 詳細は、以前の回答を参照して下さい。 http://okwave.jp/qa3296035.html javascriptで緯度・経度を指定して表示するようにもしてありますので、PHP・Perlが使用できない環境でも、リンク時に緯度・経度をURLへ含める事により任意の地点を表示できます。

hayax
質問者

お礼

早速のご回答ありがとうございます。 >htmlでページを作っていて、任意の地点を中心にして(URLで指定して)マップを表示させたい? そうです。マップを見ていて現在地をURLに変換したいということです。しかし、http://okwave.jp/qa3296035.html を見させていただいたのですが理解ができず。。サンプルなどあるところがあれば是非教えてください!よろしくお願いします!​

関連するQ&A

  • Google Maps API

    Google Maps APIについてよくわからないのですが 自分のサイトに地図を埋め込むことを言うのですよね? でもグーグルマップを開いて 「リンクを共有/地図を埋め込む」 のURLを自分のサイトに張り付ければ Google Maps APIを使わなくてもできると言う事ですか? それとも、Google Maps APIと 地図の埋め込みは、違うものなのでしょうか?

  • googleマップの富士山の赤い部分は?

    こんばんわ!今すごく気になっていることがあります。 googleマップで富士山頂を航空写真にしてみたら、赤いマグマのようなものが映ってます。これは本当にマグマなのでしょうか?? ご存知の方教えてください! ↓この写真です http://maps.google.co.jp/maps?f=q&hl=ja&geocode=&time=&date=&ttype=&q=%E5%AF%8C%E5%A3%AB%E5%B1%B1&ie=UTF8&ll=35.362876,138.731918&spn=0.032618,0.062399&t=k&z=14&iwloc=addr&om=1

  • google maps で、javscriptを使わずに、複数のマーカを表示したい。

    Google maps で、一つの地図に複数のマーカを、簡単に表示する方法を教えて下さい。 下記URLの地図に、3つのマーカを表示させたいと思っています。 http://maps.google.com/maps?hl=ja&q=%E5%85%83%E7%B4%8B%E5%88%A5&ie=UTF8&ll=44.325199,143.377376&spn=0.010837,0.028367&z=15 google maps api で、javascriptを使えばできるということは知っているのですが、 特に動的に表示させたいわけでもないので、手軽にできないかと思っています。 (プログラミングは経験していますが、javascriptは慣れていないので、極力避けたいという気持もあります) どなたか教えて頂けないでしょうか。

  • マップの取り込み

    いつもお世話になっています。 会社のHPを作成中です。 google map をはめ込みたいのですがうまくいきません。 http://www.angel-pha.com/company/ このページのように、単純な吹き出しを載せたいのですが、 http://maps.google.co.jp/maps?f=q&source=s_q&hl=ja&geocode=&q=%E8%96%AC%E5%B1%80&sll=35.96275,139.394563&sspn=0.004967,0.009549&ie=UTF8&ll=35.962898,139.394563&spn=0.005184,0.009549&z=17&iwloc=B このようにいらない情報を含む吹き出しになってしまいます。 改善策はありますか? どうぞよろしくお願い致します。

  • ホームページにグーグルマップのHTMLタグをコピーして埋め込みましたが

    ホームページにグーグルマップのHTMLタグをコピーして埋め込みましたが、HPを開くと地図の部分が読み込み中になり数秒遅れて表示されます。 できればHPを開いたときに地図も表示されて欲しいのですが・・・ 読み込むデータが多すぎるのでしょうか?地図のサイズは中にしました。 ちなみに地図の部分のHTMLタグは 『src="http://maps.google.co.jp/maps?f=q&amp;source=s_q&amp;hl=ja&amp;geocode=&amp;q=%E5%8D%83%E8%91%89%E7%9C%8C%E9%87%8E%E7%94%B0%E5%B8%82%E4%B8%AD%E9%87%8E%E5%8F%B0%E9%B9%BF%E5%B3%B6%E7%94%BA5-9&amp;sll=36.5626,136.362305&amp;sspn=31.092333,56.337891&amp;brcurrent=3, 0x6018bd548531e6cb:0xeea1ff00f497716c,0&amp;ie=UTF8&amp;hq=&amp;hnear=%E5%8D%83%E8%91%89%E7%9C%8C%E9%87%8E%E7%94%B0%E5%B8%82%E4%B8%AD%E9%87%8E%E5%8F%B0%E9%B9%BF%E5%B3%B6%E7%94%BA%EF%BC%95%E2%88%92%EF%BC%・・・・・以下省略・・』 と、この2倍のタグの量です。 もっとシンプルなHTMLタグにしたら読み込み中にならずに地図が表示されるのでしょうか? わかる方回答お願いします。

  • Google Maps API で 住所データを渡してその場所の地図を表示させたい

    Google マップでは検索ボックスに住所を入れ「検索」ボタンをクリックするとその場所が表示されます。 http://www.google.co.jp/maphp?hl=ja&tab=wl&q= このようなことを、Google Maps APIを用いて自分のサイトで行いたいと思っています。 いろいろなサイトを調べているのですが、マーカーや吹き出しをつけることはできても、入力された住所で地図の表示位置を変えることがわかりません。 はてなマップはGoogle Maps APIを使用しているとのこと、こちらのサイトでも検索ボックスに住所を入力したら地図の表示が変わるので、APIを用いてもできるのかと予想はしているのですが、実際の方法がわかりません。 http://map.hatena.ne.jp/ クラス名やヒントとなるキーワードだけでも結構ですので教えて頂ければと思います。 宜しくお願いします。

  • google map api のIE7の表示のバグについて教えてくださ

    google map api のIE7の表示のバグについて教えてください。 google map api を実装したのですが、モダンブラウザとIE8では、問題無く表示されるのですが、IEではバージョンが7以下のブラウザでは、地図表示部分がグレーになってしまって全く表示されません。 IE6以下のブラウザは仕方無いとしても、IE7では正常に表示させたいのですが、どうしたらバグを解消できるか教えてください。 google map apiは、最新の「Version 3」を利用しました。 ソースは下記です。 <!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"> <head> <title>××</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/page.css" rel="stylesheet" type="text/css" /> <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'); var myOptions = { zoom: ズーム, center: new google.maps.LatLng(緯度, 経度), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true, }; var map = new google.maps.Map(mapdiv, myOptions); }); </script> </head> <div id="map"></div> いろいろなサイトを見て調べてやってみたのですが上手くいきませんでした。 お手数かけて申し訳ありませんが、ホームページ初心者なのでご指導いただければ助かります。 なにとぞよろしくお願い致します。

  • Opera search.iniにgoogleマップを追加したい。

    タイトル通りですが、アドレスをご存知の方教えてください。 検索の作成でやってみたのですが、動作しませんでした。 http://maps.google.co.jp/maps?f=q&source=s_q&output=js&hl=ja&geocode=&q=%s&btnG=%E5%9C%B0%E5%9B%B3%E3%82%92%E6%A4%9C%E7%B4%A2

  • google map api v3の表示の不具合について教えてください

    google map api v3の表示の不具合について教えてください。 google map api v3を実装してマーカーをつけたのですが、あれこれ直していたら表示されない箇所ができてしまいました。(下記画像参照) ソースは下記です。 <!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"> <head> <title>××</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/page.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> google.maps.event.addDomListener(window, 'load', function() { var mapdiv = document.getElementById("map"); var myOptions = { zoom: ズーム, center: new google.maps.LatLng(緯度, 経度), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true }; var map = new google.maps.Map(mapdiv, myOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(緯度, 経度), map: map, title: '名称' }); }); </script> </head> <div id="map"></div> お手数かけて申し訳ありませんが、ホームページ初心者なのでご指導いただければ助かります。 なにとぞよろしくお願い致します。

  • Google Maps API は利用申請が必要?

    現在Google Static Maps API(Google Maps API)を使用して、地図表示をするページを作成しようとしているのですが、自社webサイトに掲載するために必要な手続きなどがあれば教えていただきたいです。 やろうとしていることは、 QRコードから入れるwebモバイルサイト内に店舗ごとのページがあって、「地図を表示」のリンクをからジャンプするとGoogle Static Maps APIを使用した地図を表示…といったものです QRを読むか、アドレスを入力すれば誰でも閲覧できるページにするので、利用規約上は問題ないと思っているのですが お知りの方がいたらしたら、ご回答くだされば助かります。

専門家に質問してみよう