Javascript 仅移动标记,而不是整个地图

Javascript 仅移动标记,而不是整个地图,javascript,google-maps-api-3,geolocation,Javascript,Google Maps Api 3,Geolocation,我试图创建一个函数,只移动地图上的标记,但当给定一个新位置时,整个地图都会加载。我正在使用获取当前位置并观察它(我已将geologitor.min.js中的getCurrentPosition()更改为watchPosition()) 我如何才能做到只移动地图上的标记,而不在每个新位置后加载整个地图?如果您不想移动地图,一定要删除map.panTo行?此外,您还创建了一个变量maps\u coordinates,但此后从未使用它,而是使用以前创建的maps\u coordinates来代替ma

我试图创建一个函数,只移动地图上的标记,但当给定一个新位置时,整个地图都会加载。我正在使用获取当前位置并观察它(我已将
geologitor.min.js中的
getCurrentPosition()
更改为
watchPosition()


我如何才能做到只移动地图上的标记,而不在每个新位置后加载整个地图?

如果您不想移动地图,一定要删除
map.panTo
行?此外,您还创建了一个变量
maps\u coordinates
,但此后从未使用它,而是使用以前创建的
maps\u coordinates
来代替
maps\u coordinates
是一个打字错误。很抱歉我照你说的做了,但整个地图还是重新加载了。我已经在JSFIDLE上更新了演示。您正在使用
geologitor.js
库,它似乎将地图定位到找到的位置。我没有检查所有内容:有一个函数
finalize()
,它使用新坐标绘制地图。也许有一个选项可以防止这种情况。使用
toFixed
将数字转换为字符串。然而,google.maps.LatLng()构造函数需要两个数字。删除它和/或在其周围添加一个
parseFloat()
,太感谢了,Anto!地理定位器的
drawMap()
与我自己的地图重叠!我从函数中删除了它,现在它可以按照我的要求工作了!邓肯:谢谢:)我在
location.coords.l[…]周围添加了
parseFloat()
。toFixed(6)
var map;
var map_coordinates = new google.maps.LatLng(60.327821, 13.603855);
var map_options;
var marker;
var place;
var settings_timeout = 10000;

var geolocator_options = { enableHighAccuracy: false, timeout: settings_timeout, maximumAge: 100 };



$(document).ready(function() {

    geolocator.locate(geolocator_success, geolocator_error, null, geolocator_options, 'gm');



    function geolocator_success(location) {

        place = { 'latitude': location.coords.latitude.toFixed(6), 'longitude': location.coords.longitude.toFixed(6) };
        maps_coordinates = new google.maps.LatLng(place['latitude'], place['longitude']);

        marker_solid(map_coordinates);
        marker_move(map_coordinates);

    }


    function geolocator_error(message) {
        alert(message);
    }


});



function marker_solid(coordinates) {
    marker = new google.maps.Marker({
        position: coordinates,
        map: map,
        draggable: false
    });

    map.panTo(coordinates);
}

function marker_move(coordinates) {
    marker.setPosition(coordinates);
    map.panTo(coordinates);
}


function google_maps() {
    map_options = {
        center: map_coordinates,
        zoom: 14,
        minZoom: 2,
        maxZoom: 19,
        streetViewControl: false
    };

    map = new google.maps.Map(document.getElementById('gm'), map_options);
}