百度地图中绘制自定义的用户位置,以及范围圈

效果如图,

首先创建一个类继承百度开发包提供给我们的类MyLocationOverlay,对相关的函数进行重写,主要在draw中改写,定位的当前位置放置自己的图片(小人),范围圈。需要进行经纬度和坐标的转换,以及经纬度距离的计算,这个写的时候真心废了不少时间,所以把代码贴出来,希望对大家有帮助

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.BitmapDrawable;
import android.location.Location;
import android.util.Log;
import bussystemthr.com.BusLocation;
import bussystemthr.com.R;


import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.MyLocationOverlay;
import com.baidu.mapapi.Overlay;
import com.baidu.mapapi.Projection;


public class myLocation extends MyLocationOve
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的示例,展示如何加载并使用自定义GeoJSON文件来在百度地图绘制多边形: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>百度地图加载使用自定义GeoJSON示例</title> <style type="text/css"> #map { height: 500px; width: 100%; } </style> </head> <body> <div id="map"></div> <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script> <script type="text/javascript" src="http://api.map.baidu.com/library/GeoJSON/1.2/src/GeoJSON.min.js"></script> <script type="text/javascript"> var map = new BMap.Map("map"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); // 加载GeoJSON文件 var geojson = new BMapGL.GeoJSON(); geojson.load("/path/to/your/geojson/file.json"); // 监听加载完成事件 geojson.addEventListener("load", function() { // 获取所有feature var features = geojson.getFeatures(); // 遍历feature并添加到地图上 for (var i = 0; i < features.length; i++) { var feature = features[i]; var polygon = new BMap.Polygon(feature.geometry.coordinates, {strokeWeight: 2, strokeColor: "#ff0000", fillColor: "#ff0000", fillOpacity: 0.5}); map.addOverlay(polygon); } }); </script> </body> </html> ``` 在上面的示例,我们加载了一个GeoJSON文件,然后添加了其的多边形到百度地图上。你需要将代码的密钥替换为你自己的百度地图密钥,并将`/path/to/your/geojson/file.json`替换为你自己的GeoJSON文件路径。 ### 回答2: 百度地图加载使用自定义geojson示例的过程如下: 首先,将geojson文件准备好,并确保其符合geojson的格式要求。可以使用文本编辑器创建一个.geojson文件,在该文件添加地理数据。比如,我们可以创建一个用于展示某个城市的坐标点的地图。 接下来,在代码引入百度地图的API,可以在<head>标签添加如下代码: ```html <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的百度地图API密钥"></script> ``` 其,`ak=你的百度地图API密钥`需要替换成你在百度地图开发者平台注册应用时获取到的API密钥。 然后,创建一个地图实例。可以在<script>标签加入如下代码: ```html <script type="text/javascript"> // 创建地图实例 var map = new BMap.Map("mapContainer"); // 设置地图心点 var point = new BMap.Point(经度, 纬度); map.centerAndZoom(point, 缩放级别); map.enableScrollWheelZoom(); // 加载geojson文件 map.data.loadGeoJson("path/to/your/geojson/file.geojson"); </script> ``` 在上面的代码,需要将`经度`、`纬度`、`缩放级别`和`path/to/your/geojson/file.geojson`替换成你实际的地理位置信息和geojson文件的路径。 最后,在HTML文件添加一个容器来显示地图: ```html <div id="mapContainer" style="width: 100%; height: 500px;"></div> ``` 在上述代码,`width`和`height`可以根据需要进行调整。 运行代码之后,你就可以在浏览器看到百度地图加载了你自定义的geojson文件,并展示了地理数据。 ### 回答3: 百度地图的加载和使用可以通过自定义GeoJSON示例来实现。GeoJSON是一种地理数据格式,可以包含地理要素(如点、线、面)的几何信息和属性数据。 要加载并使用自定义GeoJSON示例,首先需要获取GeoJSON示例文件。可以通过文件上传或者网络请求等方式获取。 接下来,可以使用百度地图的API提供的方法来加载GeoJSON示例。首先,需要创建一个地图实例,使用百度地图的`new BMap.Map()`方法来实现。然后,可以使用`map.addOverlay()`方法将GeoJSON示例添加到地图。 代码示例: ``` // 创建地图实例 var map = new BMap.Map("mapContainer"); // 加载GeoJSON示例 var jsonUrl = "http://example.com/your_geojson_file.geojson"; // GeoJSON示例文件的URL $.getJSON(jsonUrl, function(data) { // 创建GeoJSON图层 var geoJsonLayer = new BMapGL.GeoJSONLayer(data); // 添加GeoJSON图层到地图 map.addOverlay(geoJsonLayer); }); ``` 在上述代码,`mapContainer`是用来展示地图的HTML元素的id,可以根据实际情况修改。`jsonUrl`是GeoJSON示例文件的URL,可以将其替换为实际的文件URL。 加载自定义GeoJSON示例后,可以通过地图的交互操作实现地图的缩放、平移等功能。也可以通过GeoJSON的属性数据来实现一些与地图相关的功能,如点击地图要素显示相关信息等。 总之,通过使用百度地图的API和自定义的GeoJSON示例,可以实现地图的加载和展示,为用户提供更丰富的地图信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值