お世話になっております。
現在、ラーメン店の食べ歩きの様なサイトを作ろうとしています。
今まで訪れたお店をGoogle マイマップで登録していて、それをサイトにそのまま埋め込もうとしたのですが、マイマップはつい最近まではiOSのSafariでは利用できず、また、マイマップの説明にそのお店の紹介ページのURLを入力してもtarget="_bank"が自動的に挿入され、新規ウィンドウで開いてしまいました。
いろいろと調べてみましたが、どうやらマイマップから直接は難しそうなので、
マイマップからkmlファイルを書き出して、Google map apiを使って読み込むことにしました。
読み込むこと自体には成功しましたが、マイマップから書き出したkmlファイルへ少し手を加えて「target="_top"」を追加しました。
kml
1<description><![CDATA[<a href="https://teratail.com/" target="_top">teratail</a>]]></description>
しかし、出力されたマップでは「target="_top"」が「target="_blank"」へ変更されていました。
リンクをどうにかして同一ウィンドウで開くにはどう読み込めばよいでしょうか。
出力したkmlの一部が下記になります。
kml
1<Placemark> 2 <name>teratail</name> 3 <description><![CDATA[<a href="https://teratail.com/" target="_top">teratail</a>]]></description> 4 <styleUrl>#icon-1577-DB4436</styleUrl> 5 <ExtendedData> 6 <Data name="gx_media_links"> 7 <value>https://lh5.googleusercontent.com/〜省略〜</value> 8 </Data> 9 </ExtendedData> 10 <Point> 11 <coordinates> 12 35.6590249,139.703473,0 13 </coordinates> 14 </Point> 15</Placemark>
HTMLへの出力は下記の様にしています。
html
1<section id="googleMymap"> 2 <div id="map" style="height:500px; margin:0px; padding:0px;"></div> 3</section> 4<script> 5 function initialize() { 6 var mapPoint = new google.maps.LatLng(35.6590249,139.703473); 7 var mapOptions = { 8 zoom: 11, 9 center: mapPoint 10 } 11 var map = new google.maps.Map(document.getElementById('map'), mapOptions); 12 var ctaLayer = new google.maps.KmlLayer({ 13 url: '○○○.kml?time=cache対策の文字'//KMLファイル 14 }); 15 ctaLayer.setMap(map); 16} 17 </script>
どなたかご助力のほどお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。