Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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 地理定位API在我的手机上不起作用,但在桌面上起作用_Javascript_Android_Api_Geolocation_Gps - Fatal编程技术网

Javascript 地理定位API在我的手机上不起作用,但在桌面上起作用

Javascript 地理定位API在我的手机上不起作用,但在桌面上起作用,javascript,android,api,geolocation,gps,Javascript,Android,Api,Geolocation,Gps,我用OpenStreetMap开发了一张地图,可以确定我当前的位置。 在桌面上,一切正常,但当我切换到手机时,他并没有要求GPS许可,也无法工作 创建地图后(在手机上显示错误): 解决了,地理定位只在HTTPS上工作,我通过手机作为HTTP站点访问该站点哪个桌面,哪个手机?错误说明了什么? function init() { createMap('map'); navigator.geolocation.watchPosition(success, error, options)

我用OpenStreetMap开发了一张地图,可以确定我当前的位置。 在桌面上,一切正常,但当我切换到手机时,他并没有要求GPS许可,也无法工作

创建地图后(在手机上显示错误):


解决了,地理定位只在HTTPS上工作,我通过手机作为HTTP站点访问该站点

哪个桌面,哪个手机?错误说明了什么?
function init() {
    createMap('map');
    navigator.geolocation.watchPosition(success, error, options);
}

function createMap(id) {
    map = new OpenLayers.Map(id);
    map.addLayer(new OpenLayers.Layer.OSM());
}

function success(position) {
    const latitude = position.coords.latitude;
    const longitude = position.coords.longitude;

    console.log(latitude + ', ' + longitude);

    addMarker(latitude, longitude);
    setCenter(latitude, longitude);
}

function setCenter(latitude, longitude) {
    map.setCenter(
        new OpenLayers.LonLat(longitude, latitude).transform(
            new OpenLayers.Projection("EPSG:4326"),
            map.getProjectionObject())

        , 18
    );
}

function addMarker(latitude, longitude) {
    var markers = new OpenLayers.Layer.Markers("Markers");
    map.addLayer(markers);
    markers.addMarker(new OpenLayers.Marker(
        new OpenLayers.LonLat(longitude, latitude).transform(
            new OpenLayers.Projection("EPSG:4326"),
            map.getProjectionObject())
    ));
}

function error() {
    alert(`ERROR(${error.code}): ${error.message}`);
}