0

私はコードを持っています:

var watchID;
        var geoLoc;

        var geoService = navigator.geolocation;
        if (geoService) {
            geoService.getCurrentPosition(showCurrentLocation,errorHandler,{enableHighAccuracy: true});
        } else {
            alert("Your Browser does not support GeoLocation.");
        }

        function showCurrentLocation(position){
            var latLng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

            //Google Map options
            var myOptions = {zoom: 16,
                             center: latLng,
                             mapTypeId: google.maps.MapTypeId.ROADMAP
                            };

            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

            var usermarker = new google.maps.Marker({position: latLng, map: map, title: "You are here!"});

            map.setCenter(latLng);
            usermarker.setPosition(latLng);
            getLocationUpdate(usermarker, latLng)
        }

        function errorHandler(error){
              alert("Error while retrieving current position. Error code: " + error.code + ",Message: " + error.message);
        }

        function getLocationUpdate(usermarker, latLng){
           if(navigator.geolocation){
              var options = {timeout:60000};
              geoLoc = navigator.geolocation;
              watchID = geoLoc.watchPosition(showLocation, 
                                             errorHandler,
                                             options);
           }else{
              alert("Sorry, browser does not support geolocation!");
           }
        }

        function showLocation(position){
            op = document.getElementById("output");
            var latitude = position.coords.latitude;
            var longitude = position.coords.longitude;

            op.innerHTML = "Latitude : " + latitude + "<br />Longitude: " + longitude;
        }

マップをセットアップし、現在地を取得します。マップを中央に配置し、マーカーを移動しようとしています。getLocationUpdate は現在 watchLocation を起動しますが、マーカーと地図の中心を更新する方法がわかりません。

どんな助けでも感謝します。

4

2 に答える 2

0

マーカーの位置を間違った方法で設定している場合は、次を試してください。

position: new google.maps.LatLng(latLng)

マーカーの位置は次のように更新できます。

newLatlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
marker.setPosition(newLatlng);

showLocation(position) 内で呼び出されます

それが役に立てば幸い...

于 2013-04-09T13:48:00.297 に答える
0

これを試して:

map.panTo(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));

「移動マップ」を中央に配置します...

于 2013-01-25T09:09:49.790 に答える