地图学习之MapBox添加可移动marker,并获取实时经纬度

本文介绍如何使用Mapbox GL JS库创建一个可拖动的地图标记,并实时显示经纬度坐标。通过HTML、CSS和JavaScript代码实现,适用于网页地图开发。

在这里插入图片描述
创建这个没什么好说的,直接上代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Create a draggable Marker</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<script src="https://api.mapbox.com/mapbox-gl-js/v1.10.1/mapbox-gl.js"></script>
<link href="https://api.mapbox.com/mapbox-gl-js/v1.10.1/mapbox-gl.css" rel="stylesheet" />
<style>
	body { margin: 0; padding: 0; }
	#map { position: absolute; top: 0; bottom: 0; width: 100%; }
</style>
</head>
<body>
<style>
    .coordinates {
        background: rgba(0, 0, 0, 0.5);
        color: #fff;
        position: absolute;
        bottom: 40px;
        left: 10px;
        padding: 5px 10px;
        margin: 0;
        font-size: 11px;
        line-height: 18px;
        border-radius: 3px;
        display: none;
    }
</style>

<div id="map"></div>
<pre id="coordinates" class="coordinates"></pre>

<script>
	// TO MAKE THE MAP APPEAR YOU MUST
	// ADD YOUR ACCESS TOKEN FROM
	// https://account.mapbox.com
	mapboxgl.accessToken = '<your access token here>';
    var coordinates = document.getElementById('coordinates');
    var map = new mapboxgl.Map({
        container: 'map',
        style: 'mapbox://styles/mapbox/streets-v11',
        center: [0, 0],
        zoom: 2
    });

    var marker = new mapboxgl.Marker({
        draggable: true
    })
        .setLngLat([0, 0])
        .addTo(map);

    function onDragEnd() {
        var lngLat = marker.getLngLat();
        coordinates.style.display = 'block';
        coordinates.innerHTML =
            'Longitude: ' + lngLat.lng + '<br />Latitude: ' + lngLat.lat;
    }

    marker.on('dragend', onDragEnd);
</script>

</body>
</html>
地图上通过经纬度打点是地理信息系统(GIS)和地图开发中的常见需求,许多工具和平台都支持此类操作。以下是一些推荐的工具或软件: ### 1. **Google Maps** Google Maps 是最广泛使用的在线地图服务之一,它允许用户通过经纬度坐标手动或编程方式添加标记。 - 手动输入:可以直接在搜索栏中输入“纬度, 经度”格式来定位添加标注点。 - 编程接口:使用 Google Maps JavaScript API 可以创建自定义地图动态添加基于经纬度的标注点。 ### 2. **QGIS (Quantum GIS)** QGIS 是一个开源的桌面地理信息系统,适用于地图制作、空间数据编辑和地理数据分析。 - 支持导入包含经纬度坐标的 CSV 文件,自动将这些坐标转换为地图上的点。 - 提供丰富的样式选项,可以自定义每个点的外观,包括图标形状、颜色和大小等[^1]。 ### 3. **Mapbox** Mapbox 是一款强大的地图平台,提供了一系列的地图定制化功能。 - Mapbox GL JS 是其核心的 JavaScript 库,可以通过编程方式轻松地将经纬度数据渲染到地图上。 - 支持多种数据源,包括 GeoJSON 和矢量切片等格式。 ### 4. **Leaflet** Leaflet 是一个轻量级的开源 JavaScript 库,专门用于移动设备友好的交互式地图。 - 它非常适合用来构建简单的地图应用,能够快速加载显示带有标注点的地图。 - 可与各种地图服务提供商(如 OpenStreetMap、Mapbox 等)集成。 ### 5. **Jupyter Notebook + Folium** 结合 Jupyter Notebook 和 Python 库 [Folium](https://python-visualization.github.io/folium/),可以在浏览器中直接生成交互式地图。 - 使用 Folium,只需几行代码就可以从地址获取经纬度信息将其绘制到地图上[^2]。 - 示例代码如下: ```python import folium # 创建一个基础地图,设置起始视图为北京 m = folium.Map(location=[39.9042, 116.4074], zoom_start=12) # 添加一个标记点 folium.Marker([39.9042, 116.4074], popup='北京').add_to(m) # 显示地图 m.save('map.html') ``` ### 6. **ArcGIS** ArcGIS 是由 Esri 提供的一套全面的 GIS 软件解决方案。 - 包括 ArcGIS Online 和 ArcGIS Pro 等产品线,它们都具备强大的地图绘制能力。 - 用户可以上传带有经纬度的数据文件,系统会自动解析将这些位置作为点要素添加地图图层中。 以上工具不仅支持基本的经纬度打点功能,而且大多数还提供了高级特性,比如热力图、路径规划以及实时追踪等。选择合适的工具取决于具体的应用场景、预算和技术水平。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码的灵魂是bug!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值