Mapbox 显示来自我的互联网服务提供商 (ISP) IP 地址的位置

Mapbox showing location from my Internet service provider(ISP) IP address

Mapbox 显示的位置来自我的互联网服务提供商 (ISP) IP 地址,而不是来自通过 WIFI 连接到家庭网络的台式机的 IP 地址,但是,它确实跟踪了我连接到的移动设备的正确位置同一个家庭网络。

我该如何解决这个问题?

Index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src='https://api.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.js'></script>
    <script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v4.1.0/mapbox-gl-directions.js"></script>
    <link href='https://api.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.css' rel='stylesheet'/>
    <link rel="stylesheet" href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-directions/v4.1.0/mapbox-gl-directions.css" type="text/css"/>
    <title>Mapbox Test</title>
</head>
<body>
    <div id='map' ></div> 
    <script src="js/basic_map.js" defer></script>
</body>
</html>

basic_map.js:

// mapbox access Key
mapboxgl.accessToken = ACCESS_TOKEN;

// Get My Current Location
navigator.geolocation.getCurrentPosition(successLocation, errorLocation, { enableHighAccuracy: true});

function successLocation(position)
{
    center = [position.coords.longitude, position.coords.latitude];
    zoom = 15;
    setupMap(center, zoom);
}

function errorLocation()
{
    // Fallback: Cape Town
    center = [18.4241, -33.9249];
    zoom = 10;
    setupMap(center, zoom);
}

function setupMap(center,zoom)
{
    const map = new mapboxgl.Map({
        container: 'map',
        style: 'mapbox://styles/mapbox/streets-v11',
        center: center,
        zoom: zoom
        });



    map.on('load', function() 
    {
        // Add Navigation Buttons
        const nav = new mapboxgl.NavigationControl();
        map.addControl(nav, 'top-right');

        //  Add Marker
        const  marker = new mapboxgl.Marker()
        .setLngLat(center)
        .addTo(map);
    });
}

这正是地理定位工作原理所固有的。移动设备内置 GPS,外加 3G/4G、wi-fi 等——有很多方法可以知道它在哪里。台式计算机没有该信息:只有它的 IP 地址。所以地理定位服务正在做出最好的猜测,并在您的 ISP 处结束。