googl地图提供了google.maps.Circle类实现圆形叠加层的显示,详细的方法和属性可以参考google map Api.
实现绘制圆形只要知道圆心和半径即可,半径可以通过两个坐标点之间的距离求的。
根据两个经纬度来计算半径,方法如下:
function calculationDistance(lat1, lon1, lat2, lon2) {
var R = 6371;//地球半径 km
var dLat = (lat2 - lat1) * Math.PI / 180;
var dLon = (lon2 - lon1) * Math.PI / 180;
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
return d;
}
对返回的值可以进行处理一下:
function getDistance(distance) {
//大于1 保留两位小数
if (distance > 1) return distance.toFixed(2) + "km";
//小于1 表示不到1km,使用单位"m"
else if (distance <= 1) return Math.round(distance * 1000) + "m";
}
得到两点之间的半径了,就可以使用google map api 提供的方法显示圆形。
var drawCircle = function () {
var circle;
google.maps.event.addListenerOnce(mapObj, "click", function (event) {
var radius = 0;
var markerCenter = new google.maps.Marker({ position: event.latLng, map: mapObj, draggable: false });
var markerRadius = new google.maps.Marker({ position: event.latLng, map: mapObj, draggable: true, title: title });
google.maps.event.addListener(markerRadius, 'drag', function (MouseEvent) {
radius = calculationDistance(markerCenter.getPosition().lat(), markerCenter.getPosition().lng(), MouseEvent.latLng.lat(), MouseEvent.latLng.lng());
circle.setRadius(radius * 1000);
});
var circleOptions = {
map: mapObj,
center: event.latLng,
radius: radius,
strokeWeight: 0
};
circle = new google.maps.Circle(circleOptions);
});
}
在页面中添加按钮触发画圆事件,拖动标注进行画圆。
- 大小: 81.1 KB
分享到:
相关推荐
下面将详细介绍Vue2googlemap的关键特性和使用方法。 1. **安装与配置** 安装Vue2googlemap通常通过npm进行,使用以下命令: ``` npm install vue2-google-map ``` 在项目中引入并注册该组件,确保已经获取到...
通过webbrowser加载html页面调用js的方式实现绘制可编辑圆形和多边形的功能。 要求:1.net 4.0 2.IE8以上 3.需要可以打开谷歌地图和谷歌开发key 4.因为是从之前的项目里剥离出来的,界面都是英文,不过不影响使用;
在这个项目中,"js基于谷歌地图API绘制可编辑圆形与多边形"是一个典型的示例,它展示了如何利用谷歌地图API创建交互式的地图元素,特别是用户可以编辑的圆形和多边形。 首先,谷歌地图API是谷歌提供的一套...
1. **绘制路径**:使用`google.maps.Polyline`类绘制路径,可以设置线的样式。 2. **驾车、步行、骑行路线**:通过`DirectionsService`和`DirectionsRenderer`对象获取和显示路线信息。 **七、事件处理** 1. **监听...
通过本文的介绍,我们详细了解了谷歌地图API V3的各个组成部分以及如何使用这些组件来创建丰富的地图应用。无论是基本的地图显示,还是复杂的路线规划和地理编码功能,谷歌地图API V3都为开发者提供了强大而灵活的...
这个"google map的开发辅助utils.zip"压缩包提供了一个开源项目——"android-maps-utils",它是对Google Maps Android API的一个便捷扩展,旨在简化开发过程,提高开发效率。 `android-maps-utils`库包含了一系列...
然后,使用API的 `google.maps.Polygon` 类来创建并显示这个多边形。 其次,修改多边形主要涉及更新围栏区域的坐标。这可能是因为需要扩大或缩小围栏,或者调整其形状。修改多边形通常包括获取当前多边形的路径,...
为了提高性能,可以使用GroundOverlay来添加图像覆盖层,使用Polygon或Circle来绘制多边形或圆形区域。还可以通过 fused location provider client 获取用户的位置信息,实现精确的定位服务。 本Demo涵盖了Google ...
- 使用Google Maps SDK for iOS时,应遵守Google的使用条款和隐私政策。 - 对于大规模的商业应用,可能需要考虑成本,因为超出免费额度后,可能会产生费用。 - 定期更新SDK以获取最新的功能和性能优化。 总之,...
在React.js的世界里,开发...总的来说,`react-gmaps`是一个强大且易于使用的React组件,它极大地简化了在React应用中集成Google Maps的过程,为开发者提供了丰富的地图功能,帮助构建出具有地图功能的现代Web应用。
通过API,用户能够自定义地图样式、添加标记、绘制路线以及实现其他丰富的地图功能。 #### 二、核心概念及组件 ##### 1. Map - **MapOptions**: 定义地图初始化时的配置选项,包括中心位置、缩放级别等。 - `...
在谷歌地图API中,画扇形通常涉及到对角度和弧度的理解,以及使用几何对象如圆形和路径。开发者可以利用API提供的`google.maps.Polygon`或`google.maps.Polyline`类来创建多边形或线,通过设置特定的坐标点来绘制...
在 Google Maps API V3 中,Map 是地图的核心组件,提供了多种配置选项和事件监听器。开发者可以使用 MapOptions 对象来配置地图的基本属性,如中心点、缩放级别、地图类型等。同时,MapTypeId 对象提供了多种地图...
5. Circle组件:用于绘制圆形区域,可以用于表示半径或地理范围。 三、使用方法 在项目中引入React-Google-Maps,首先需要安装库,通过npm或yarn命令进行: ```bash npm install react-google-maps # 或 yarn add...
在给定的部分内容中可以看到,使用`google.maps.Map`方法来创建一个新的地图实例,并将其绑定到HTML页面中的`#map_canvas`元素上。 ```javascript var latlng = new google.maps.LatLng(30.277925, 120.177597); //...
在本篇博客“初学 Google Maps JavaScript (5) 画圆指定范围”中,作者将引导初学者如何利用 Google Maps JavaScript API 来绘制圆形区域,这对于实现地理定位、地图覆盖层或者显示特定半径内的地点等功能非常有用。...
例如,如果我们选择绘制圆形,可以使用`createRegularPolygon`方法: ```javascript if (value === 'Square') { value = 'Circle'; geometryFunction = ol.interaction.Draw.createRegularPolygon(4); } else if ...
Google Maps API V3 是一个强大的工具,用于在网页中集成交互式地图功能。在这个API的第三版中,重点...通过熟练掌握叠加层的使用,你可以创建出具有个性化地图元素和丰富交互性的地图项目,为用户提供独特的地图体验。
在这种类型的地图上,大的圆形路径即使实际上是笔直的,也往往看起来是弯曲的。 作为替代方案,该网站还具有3D地球视图,不存在该问题。 将3维球体投影到2维屏幕上总是会产生变形。 大多数世界地图都使用墨卡托...
在Google Map Maker中绘制圆圈可能很难正确。此扩展程序将显示一个覆盖在地图上的圆,在绘制诸如回旋处的圆时,可用于跟踪。您可以根据自己的喜好更改各种选项,以自定义叠加层。您可以选择覆盖任何图像并调整大小和...