2

そのため、最近、通常のグーグルマップの「埋め込み」(iframe)コードのカスタマイズ性の欠如に少しがっかりしました。Google MapsAPIv3をいじり始めました。本当に、私がやりたいのは、地図上にビジネスのマーカーを表示することだけです。そうすれば、それをクリックして、mapsgoogle.comのその「場所」に移動できます。

以下のiframeコードの機能を再現したいと思います。ドキュメントを1時間ほど読みましたが、マーカーを「場所」に関連付けるだけでは非常に複雑なようです。

場所

https://maps.google.com/maps?cid=1311411133662139490

標準の埋め込み

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?cid=1311411133662139490&amp;ie=UTF8&amp;hq=&amp;hnear=&amp;t=m&amp;iwloc=A&amp;ll=41.097905,-73.405006&amp;spn=0.006295,0.006295&amp;output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?cid=1311411133662139490&amp;ie=UTF8&amp;hq=&amp;hnear=&amp;t=m&amp;iwloc=A&amp;ll=41.097905,-73.405006&amp;spn=0.006295,0.006295&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small>

を使用するための機能がAPIにないように見えますcid

少し詳しく説明します

一般的に、私はこれを中小企業のWebサイトにのみ使用します。私は通常のiframeの埋め込みとカスタマイズ性の欠如に不満を感じていました。基本的に、いろいろと遊んだり、ルック/フィールを大幅にカスタマイズしたりできる出発点が必要ですが、「場所」のデータに関連付けられたマーカーを配置できませんでした。小さなポップアップウィンドウが可能になります。等..

正直なところ、私はこの質問をする前に十分な調査をしていませんでした-そしていくつかの誤解を持ってやって来ました。 APIは私が最終的に使用したいものであると私は思いますが、間違っているかもしれませんが、Rickの回答の機能について知っていれば、おそらくそれを受け入れて、gmapsAPIの学習をより長く先延ばしにしていたでしょう。

4

3 に答える 3

6

目標を達成するための 1 つのオプションを説明させてください。リンクに添付したドキュメントにある、Google Maps API v3 が提供するマーカーと infoWindow オブジェクトを使用します。私が作成した jsFiddle を自由にフォローしてください: http://jsfiddle.net/bgvYH/

まず最初に、オプションを使用してマップを開始します。次のコード スニペットのさまざまな変数が何を表しているかを知っていると仮定します。

var myLatlng = new google.maps.LatLng(41.097905,-73.405006);
  var myOptions = {
  zoom: 16,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

マップをさらに好みに合わせてカスタマイズしたい場合は、API リファレンスで設定できるさまざまなオプションを確認してください。これらのオプションは myOptions オブジェクト ( https://developers.google.com/maps /documentation/javascript/reference#MapOptions )。注: マップの中心をレストランの緯度/経度座標に設定しました。これは、 iframe で提供された URL から取得しましたll=41.097905,-73.405006

次に行うことは、infoWindow に表示するコンテンツを決定することです。そのため、レストラン情報は次のようになります。

var contentString = "<div id='content'>";
    contentString += "<div id='title'>Mr. Frosty's Deli and Grill</div>";
    contentString += "<div id='info'><p>10 1st Street</p><p>Norwalk, CT 06855</p><p>(203) 956-5767</p><p><a href='http://thebeachburger.com/'>thebeachburger.com‎&lt;/a></p></div></div>";

このプロジェクトの詳細に応じて、将来的にはデータベースまたは JSON オブジェクトからこの情報を取得することになるかもしれません (今のところ、静的 HTML として持っています)。

次に、infoWindow オブジェクトを初期化し、contentString を infoWindow の content オプションに設定します。ここでカスタマイズできる他のオプションがあります (マップ オプションと同様に、InfoWindowOptions のリファレンスをもう一度見てください: https://developers.google.com/maps/documentation/javascript/reference#InfoWindowOptions )

var infowindow = new google.maps.InfoWindow({
    content: contentString
});

infoWindow オブジェクトを設定したら、マーカー オブジェクトを初期化します。これにより、マップ上にドロップ バブルが配置されます。もう一度、map オブジェクトと infoWindow オブジェクトで行ったのと同じように、初期化時にマーカーのオプションを設定します。参照を見て、好みに合わせてさらにカスタマイズできます (そこには、カスタム アイコンを使用できるマーカー - ここでかなり創造的になることができます)。

var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title:"Mr. Frosty's Deli and Grill"
});

最後に、ユーザーがマーカーをクリックすると情報がポップアップするように、マーカーと infoWindow を一緒にバインドする必要があります。これは、イベント リスナーを使用して実現され、マーカー変数の「クリック」アクションをリッスンします。Google マップのイベントに関する情報については、このドキュメントをお読みください https://developers.google.com/maps/documentation/javascript/events . 同様に、オブジェクトでリッスンできるさまざまなイベントについては、API リファレンスを参照してください。

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});

含める iframe の有効な代替手段が必要です。ただし、マップとその上で実行するアクションを必要に応じてカスタマイズできるようになりました。jsFiddle には、infoWindow 内の見栄えを良くするためのスタイリングも含まれています。


さて、お知らせしたいと思います - あなたが探しているものには別のオプションがあると思います - しかし、私はまだこの API を試していません。これは、登録が必要な Google Places API です。しかし、ドキュメントを読んだ限りでは、やりたいことは実現できるのではないかと思います。それを見て(https://developers.google.com/maps/documentation/places/)、何が良いかを見てください。

于 2012-06-08T01:04:34.663 に答える
1

これは「マイ プレイス」を通じて作成され、公開されたようです。API をいじりたくない場合は、それが最善の策です。

maps.google.com にアクセスし、[マイプレイス] をクリックして [地図を作成] をクリックします。埋め込みコードをカスタマイズして取得します。

于 2012-06-07T18:14:05.520 に答える
0

地図をインタラクティブにする必要がない場合 (クリック操作以外) は、静的地図を使用します。これは単なる画像であるため、必要な場所を正確に指すアンカーでラップできます。

于 2012-06-05T16:59:01.827 に答える