2011-02-21 5 views
4

私はGoogleマップapi v3を使用しています。google maps - 座標を指定してマーカー情報をオープン

javascriptを使用して、座標を指定したマーカーの情報ウィンドウを開くにはどうすればよいですか?

+0

いくつかのコードを共有できますか?マーカーは保存されていますか? – kjy112

+0

はいマーカーは保存され、地図上に表示されます。私はマップの外側にあるリンクのリストを持っています。私は現在、クリックすると、それらの座標を中心にしていますが、マーカーの情報ウィンドウをロードしたいと考えています。 – raklos

+0

plsはjsbinまたはjsfiddleでコードを共有します。それを1秒で修正することができます。 ;) –

答えて

11

ここでは、マーカとのマップJavaScriptインタラクションの「外側」を行う方法を示すJsfiddleがあります。はい、マーカを保存する必要があり、配列に適切なInfoWindowがあり、アクセスできるようになっています。私は2つのランダムなマーカーを作成し、配列船からの座標を使用します。ここで

はHTMLで、リンクをクリックすると1がメーカ1にセンタリングし、その情報ウィンドウとマーカ2その逆のためのポップアップう一般的な2つのリンクで:

<div id='map_canvas'></div> 
    <a href='#' onClick="gotoPoint(1);">Click for marker 1</a><br/> 
    <a href='#' onClick="gotoPoint(2);">Click for marker 2</a> 

createMarker以内に私はそのと一緒に作成したメーカーを保存しますInfoWindowを関連付けて、グローバルスコープのマーカー配列にプッシュします。ホバー上のマーカーは、それはその仲間の情報ウィンドウを開きます:

function createMarker(lat, lon, html) { 
    var newmarker = new google.maps.Marker({ 
     position: new google.maps.LatLng(lat, lon), 
     map: map, 
     title: html 
    }); 

    newmarker['infowindow'] = new google.maps.InfoWindow({ 
      content: html 
     }); 

    google.maps.event.addListener(newmarker, 'mouseover', function() { 
     this['infowindow'].open(map, this); 
    }); 

    marker.push(newmarker); 
} 

ここgotoPointでは、私は単にパラメータとしてマーカ番号にお尻。私は基本的にnew google.maps.LatLngを使用することにより、マーカーのものにマップの中心を設定し、marker[myPoint-1].position.lat();marker[myPoint-1].position.lng();を呼び出すことにより、マーカーの緯度とLNGを使用し、marker[myPoint-1]['infowindow'].open(map, marker[myPoint-1]);とその仲間の情報ウィンドウを開きます。

function gotoPoint(myPoint){ 
    map.setCenter(new google.maps.LatLng(marker[myPoint-1].position.lat(), marker[myPoint-1].position.lng())); 
    marker[myPoint-1]['infowindow'].open(map, marker[myPoint-1]); 
} 

はあなたがいずれかを持っているなら、私を知ってみましょうこの例に関する質問。

+0

例えばhttp://nerddinner.com/私はそのGoogleマップではないことを知っていますが、リンクをホバーするとウィンドウが読み込まれます。 – raklos

+0

@raklosはい、ちょっとしたコードを書くのに数分かかります。 – kjy112

+0

一度に1つの情報ウィンドウしか開いていなかったら、このコードをどのように使いましょうか? – MrBliz

関連する問題