3

私はgmap3をハッキングして、最初のタスクを機能させることができます。緯度経度を使用して地図を表示しています。

私のJavaScriptは次のように見えます

  $('#map_canvas').gmap3(
                    {
                        action: 'init',
                        options: {
                            center: [x,y],
                            zoom: 12,
                            mapTypeId: google.maps.MapTypeId.ROADMAP,
                            mapTypeControlOptions: {
                                mapTypeIds: []
                            }
                        }
                    },
                    {
                        action: 'addMarkers',
                        radius: 100,
                        markers: GetMarkers(),
                        clusters:
                        {
                            0:
                                {
                                    content: '<div class="cluster cluster-3">CLUSTER_COUNT <div class="cluster-3text">Stops</div> </div>',
                                    width: 66,
                                    height: 65
                                }
                        },
                        marker:
                        {
                            options:
                            {
                                icon: new google.maps.MarkerImage('../img/marker.png', size, origin, null, null)
                            },
                            events:
                            {
                                mouseover: function (marker, event, data) {
                                                                        getArrivalsAndStop(marker, event, data);
                                },
                                mouseout: function () {
                                    $(this).gmap3({ action: 'clear', name: 'overlay' });
                                }
                            }
                        }
                    });

これにより、マップが希望どおりに読み込まれます。次のステップは、新しいlat&longを適用できるようにすることです。マップ全体を破棄して毎回再作成せずにこれを行うにはどうすればよいですか?

4

3 に答える 3

9

jquery gmap3 pluginを使用しています。

マップを初期化した後、すべてをリロードせずに setCenter を呼び出したい場合は、次のように実行できます。

$('#mymap').gmap3('get').setCenter(new google.maps.LatLng(48.706685,-3.486694899999975))

$('#mymap').gmap3('get') は魔法のようなもので、私が思う本当の Google マップ オブジェクトを提供します。

これを見つけるのは難しかったので、他の誰かに役立つことを願っています。

于 2012-12-17T16:51:59.867 に答える
1

ドキュメントから:

この例では、アドレス解決の結果で map.setCenter を実行します。これはマップであるため、ターゲットは指定されていません。

$('#test').gmap3(
{ 
  action: 'getLatLng',
  address: '2 bis rue saint antoine, eguilles',
  callback: function(result){
    if (result){
      $(this).gmap3({action: 'setCenter', args:[ result[0].geometry.location ]});
    } else {
      alert('Bad address 2 !');
    }
  }

});

したがって、座標が分かっていて、ジオコーダーを使用する必要がない場合は、次のようになります。

     $(this).gmap3({action: 'setCenter', args:[ new google.maps.LatLng(latitude, longitude) ]});
于 2012-07-31T06:05:56.800 に答える
1

ゲームの後半ですが、リストとマップ(Googleマップタイプ)を使用しています。それが役に立てば幸い

これが私がそれを達成した方法です

$(document).delegate('#inner_list li', 'click', function () {
var id = $(this).attr('data-id');




$("#map-canvas").gmap3({
    get: {
        name:"marker",
        id: id,
        all: true,
            callback: function(objs){
                $.each(objs, function(i, obj){
                obj.setIcon("http://www.markericon.com");
                var newLL = obj.getPosition()
                $('#map-canvas').gmap3('get').panTo(newLL)


                });
            }
  }
});

});

于 2014-05-21T04:05:24.457 に答える