百度地图自定义标记获取经纬度坐标

支持打点获取坐标,环形标记,自定义形状标记

效果如下

直接上代码:

<!DOCTYPE html>
<html>
<script src="js/jquery-2.1.3.min.js"></script>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
    body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
    #allmap {width: 100%; height:500px; overflow: hidden;}
    #result {width:100%;font-size:12px;}
    dl,dt,dd,ul,li{
        margin:0;
        padding:0;
        list-style:none;
    }
    p{font-size:12px;}
    dt{
        font-size:14px;
        font-family:"微软雅黑";
        font-weight:bold;
        border-bottom:1px dotted #000;
        padding:5px 0 5px 5px;
        margin:5px 0;
    }
    dd{
        padding:5px 0 0 5px;
    }
    li{
        line-height:28px;
    }
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=xDf0Dc9oECn8wCHm8oXOCGVetPYanLGa"></script>
    <!--加载鼠标绘制工具-->
    <script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
    <link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
    <!--加载检索信息窗口-->
    <script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.js"></script>
    <link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.css" />
    <title>鼠标绘制工具</title>
</head>
<body>
    <div id="allmap" style="overflow:hidden;zoom:1;position:relative;"> 
        <div id="map" style="width:800px;height:1000px;-webkit-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;"></div>
    </div>
    <div id="result">
        <input type="button" value="获取绘制的覆盖物个数" onclick="alert(overlays.length)"/>
        <input type="button" value="清除所有覆盖物" onclick="clearAll()"/>
        <input id="xy" value="" onclick="clearAll()"/>
    </div>
    <script type="text/javascript">
    // 百度地图API功能
    var map = new BMap.Map('map');
    var poi = new BMap.Point(112.985714,28.218595);
    map.centerAndZoom(poi, 16);
    map.enableScrollWheelZoom();  
    var overlays = [];
    var overlaycomplete = function(e){
        overlays.push(e.overlay);
        //点击后获取经纬度
        map.addEventListener("click",function(e){
        $("#xy").val(e.point.lng + "," + e.point.lat);
        //alert(e.point.lng + "," + e.point.lat);
    });
    };
    var styleOptions = {
        strokeColor:"red",    //边线颜色。
        fillColor:"red",      //填充颜色。当参数为空时,圆形将没有填充效果。
        strokeWeight: 3,       //边线的宽度,以像素为单位。
        strokeOpacity: 0.8,    //边线透明度,取值范围0 - 1。
        fillOpacity: 0.6,      //填充的透明度,取值范围0 - 1。
        strokeStyle: 'solid' //边线的样式,solid或dashed。
    }
    //实例化鼠标绘制工具
    var drawingManager = new BMapLib.DrawingManager(map, {
        isOpen: true, //是否开启绘制模式
        enableDrawingTool: true, //是否显示工具栏
        drawingToolOptions: {
            anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
            offset: new BMap.Size(5, 5), //偏离值
        },
        circleOptions: styleOptions, //圆的样式
        polylineOptions: styleOptions, //线的样式
        polygonOptions: styleOptions, //多边形的样式
        rectangleOptions: styleOptions //矩形的样式
    });  
     //添加鼠标绘制工具监听事件,用于获取绘制结果
    drawingManager.addEventListener('overlaycomplete', overlaycomplete);
    function clearAll() {
        for(var i = 0; i < overlays.length; i++){
            map.removeOverlay(overlays[i]);
        }
        overlays.length = 0   
    }
   /* map.addEventListener("click",function(e){
        alert(e.point.lng + "," + e.point.lat);
    });*/
    
</script>
</body>
</html>

 

详情请参考百度地图API

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi 是一种流行的软件开发环境,用于创建 Windows 应用程序。百度地图是一种基于Web的地图服务,提供了丰富的地图数据和功能。 在 Delphi 中使用百度地图进行标记,我们可以通过使用百度地图的 JavaScript API 来实现。以下是一个简单的步骤指南: 1. 首先,你需要将百度地图的 JavaScript API 导入到 Delphi 项目中。你可以从百度地图开放平台获取 API 密钥,并使用 TWebBrowser 控件将其嵌入到 Delphi 窗体中。 2. 创建一个新的窗体或面板来放置地图。你可以使用 Delphi 的设计工具来定位和调整该窗体或面板的大小。 3. 在 Delphi 代码中,使用 TWebBrowser 控件的 Navigate 方法加载百度地图的网页。例如: ```delphi WebBrowser1.Navigate('http://api.map.baidu.com/api?v=2.0&ak=your_api_key'); ``` 这将加载一个包含百度地图 JavaScript API 的网页。 4. 在网页加载完成后,你可以使用 WebBrowser 控件的 Document 属性来访问加载的网页,并执行 JavaScript 代码。例如,你可以使用 JavaScript 代码来在地图上标记特定的位置: ```delphi WebBrowser1.Document.InvokeScript('addMarker', ['latitude', 'longitude']); ``` 这将在地图上添加一个标记,具有指定的纬度和经度。 通过以上步骤,你可以使用 Delphi 来集成百度地图,并在地图上标记特定的位置。这样,你可以为你的 Windows 应用程序提供交互式地图功能。记住,这只是一个基本的示例,你可以根据自己的需求进行修改和扩展。 ### 回答2: Delphi是一种集成开发环境(IDE),它可以用于创建各种类型的应用程序。百度地图是一种基于Web的地图服务,它提供了地理位置信息和地图展示功能。在Delphi中,我们可以使用百度地图标记API来在地图上添加标记。 为了使用百度地图标记API,首先需要在百度地图开放平台上注册一个账号,并且创建一个应用。然后,我们需要在Delphi项目中导入百度地图标记API的相关文件。 一旦导入了相关文件,我们可以通过调用百度地图标记API提供的函数和方法,在Delphi中实现地图标记的功能。例如,我们可以使用API中的addMarker函数在地图上添加一个标记,并指定标记的位置和其他属性,如图标样式、文字说明等。我们还可以使用API中的removeMarker函数来移除地图上的标记。 此外,百度地图标记API还提供了很多其他的功能,如设置标记的点击事件、拖拽标记、显示信息窗口等。我们可以根据自己的需求,选择合适的函数和方法来实现所需的功能。 总的来说,Delphi提供了使用百度地图标记API的能力,通过调用API中的函数和方法,我们可以在Delphi应用程序中添加、移除和操作地图标记,从而实现丰富的地图展示功能。 ### 回答3: Delphi是一种集成开发环境(IDE),特别适用于创建Windows应用程序。它提供了各种工具和组件,旨在简化开发过程并提高软件质量。 百度地图是一个方便易用的地图服务平台,提供了各种地图相关的功能,如检索位置、绘制路线、标记位置等。 在Delphi中使用百度地图标记位置,我们可以通过以下步骤完成: 1. 在Delphi中安装并导入百度地图SDK。百度地图提供了适用于Delphi的SDK包,可以在Delphi中直接调用地图相关功能。 2. 创建一个新的窗体或表单,作为地图标记的容器。这个窗体可以是TForm或TPanel等Delphi控件。 3. 在窗体的OnCreate事件中,初始化百度地图对象,并将其放置在窗体中。可以通过调用百度地图SDK提供的相关函数来实现。 4. 根据需求,在地图上标记特定的位置。可以通过指定经纬度或地址来确定标记的位置,也可以通过点击地图来获取标记位置的坐标。 5. 可以为标记位置添加自定义图标或文字等元素,以提高标记的可视化效果。 6. 在窗体的OnClose事件中,释放百度地图对象以及其他相关资源,以确保程序的正常退出。 通过上述步骤,我们可以在Delphi中实现与百度地图的集成,并使用地图的标记功能。这样,我们可以在自己的应用程序中显示地图,并在地图上标记特定的位置,以帮助用户更好地了解地理位置信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值