0

私は新しい Backbone ユーザーで、Google マップの実装を開始しました。これを de View オブジェクトに設定します。私はすべて正常に動作しますが、別のページ (ナビゲーター オブジェクトを含むテンプレート) に移動し、Google マップを含むページに戻ると、現在の位置が Google マップで販売されません。

私のビューからの私のコードの下

DFM.MapView = Backbone.View.extend({

el: $("#content"),

template: $("#rankings_template").html(),

// Initialiseren
initialize: function(){

    self = this;
    this.render();

    var location_destiny = new google.maps.LatLng(52.476716,4.799623);

    var map = new google.maps.Map(document.getElementById('google_maps'), {
        center: location_destiny,
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        panControl: false,
        zoomControl: false,
        mapTypeControl: false,
        scaleControl: false,
        streetViewControl: false,
        overviewMapControl: false

    });

    if(navigator.geolocation){

        navigator.geolocation.watchPosition(update_user_location, error_handler, {
            enableHighAccuracy: true,
            frequency: 3000
        });

    } else {
        console.error('Geolocation: 0 - Geotracking not available'); 
    }

    // Update user location
    function update_user_location(position){
        location_user = new google.maps.LatLng(52.474716,4.798623);

        var marker_user = new google.maps.Marker({
             title: 'Gebruiker',
             position: location_user,
             map: map,
             draggable: true,
        });
    }

    // Error handler
    function error_handler(error){
        console.error('Geolocation: ' + error.code + ' - ' + error.message);
    }

    var marker_destiny = new google.maps.Marker({
         title: 'Bestemming',
         position: location_destiny,
         map: map,
         draggable: true,
    });
},

render: function(){

    this.$el.html(_.template(this.template));

    return this;
}

});

4

1 に答える 1

0

質問が正しかったかどうかはわかりませんが、私にとってはgoogle.maps.event.trigger(map,'resize');、マップルートをトリガーした後に毎回電話をかけるのに役立ちました.

PS:少し遅れていますが、将来誰かを助けるかもしれません

于 2013-07-31T22:34:20.193 に答える