Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript+;谷歌地图:如何获得地理位置,然后分配地图的中心?_Javascript_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript+;谷歌地图:如何获得地理位置,然后分配地图的中心?

Javascript+;谷歌地图:如何获得地理位置,然后分配地图的中心?,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,这可能是一个非常基本的问题。我有代码工作,但它在逻辑上是错误的 我需要找到地理位置,把地图的中心放在那里。如果我无法访问地理位置,那么我想将中心设置在新天堂。我知道我应该使用回调,但我不知道如何使用 现在代码可以工作,但速度很慢。它首先将中心设置为新天堂,然后跳到真实的地理位置。我想马上把它送到真正的那个。我应该如何做到这一点 多谢各位 $(document).ready(function() { let canvas = $("#map-canvas").get(0); // Styles

这可能是一个非常基本的问题。我有代码工作,但它在逻辑上是错误的

我需要找到地理位置,把地图的中心放在那里。如果我无法访问地理位置,那么我想将中心设置在新天堂。我知道我应该使用回调,但我不知道如何使用

现在代码可以工作,但速度很慢。它首先将中心设置为新天堂,然后跳到真实的地理位置。我想马上把它送到真正的那个。我应该如何做到这一点

多谢各位

$(document).ready(function() {

let canvas = $("#map-canvas").get(0);

// Styles for map
// https://developers.google.com/maps/documentation/javascript/styling
let styles = [
    // Hide Google's labels
    {
        featureType: "all",
        elementType: "labels",
        stylers: [
            {visibility: "off"}
        ]
    },
    // Hide roads
    {
        featureType: "road",
        elementType: "geometry",
        stylers: [
            {visibility: "off"}
        ]
    }
];
// Options for map
// https://developers.google.com/maps/documentation/javascript/reference#MapOptions
let options = {
    center: {lat: 41.3184, lng: -72.9318},//new heaven
    disableDefaultUI: true,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    maxZoom: 14,
    panControl: true,
    styles: styles,
    zoom: 13,
    zoomControl: true
};

// Instantiate map
map = new google.maps.Map(canvas, options);

//reset center if geolocation is accessible (HERE IS THE PROBLEM)
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
        pos = {
          lat: position.coords.latitude,
          lng: position.coords.longitude
        };
        map.setCenter(pos);
        var marker = new google.maps.Marker({
        position: map.getCenter(),
        map:map,
        label:"Around Me"
        });
    });
}

});

如果不希望它以“新天堂”为中心,则在地理位置回调返回值之前不要设置中心。这样做的缺点是,如果地理定位失败(用户拒绝或浏览器不支持),地图将根本无法显示

$(文档).ready(函数(){
让画布=$(“#映射画布”).get(0);
//地图样式
// https://developers.google.com/maps/documentation/javascript/styling
让样式=[
//隐藏谷歌的标签
{
featureType:“全部”,
elementType:“标签”,
样式:[{
能见度:“关闭”
}]
},
//隐藏道路
{
特色类型:“道路”,
elementType:“几何体”,
样式:[{
能见度:“关闭”
}]
}
];
//地图选项
// https://developers.google.com/maps/documentation/javascript/reference#MapOptions
让选项={
disableDefaultUI:true,
mapTypeId:google.maps.mapTypeId.ROADMAP,
maxZoom:14,
泛控制:对,
风格:风格,
缩放:13,
动物控制:正确
};
//实例化映射
map=新的google.maps.map(画布,选项);
//如果可以访问地理位置,则重置中心(问题出在这里)
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
pos={
纬度:位置坐标纬度,
lng:position.coords.longitude
};
地图设置中心(pos);
var marker=new google.maps.marker({
位置:map.getCenter(),
地图:地图,
标签:“围绕着我”
});
});
}
});
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}