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



地图框显示了我的互联网服务提供商(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。

相关内容

  • 没有找到相关文章

最新更新