本来该功能是该网站的功能之一: http://www.3rdcrust.com/search/searchmap.html
大家可以通过查看网站源码,看见相关代码.
我只是把画圆这个功能单独提取了出来,方便大家使用.
<script type="text/javascript">
var map;
////////////////////////////////////////////////////////////////////////////
function createCircle(point, radius) {
geoQuery = new GeoQuery();
geoQuery.initializeCircle(radius, point, map);
geoQuery.render();
}
function destination(orig, hdng, dist) {
var R = 6371; // earth's mean radius in km
var oX, oY;
var x, y;
var d = dist/R; // d = angular distance covered on earth's surface
hdng = hdng * Math.PI / 180; // degrees to radians
oX = orig.x * Math.PI / 180;
oY = orig.y * Math.PI / 180;
y = Math.asin( Math.sin(oY)*Math.cos(d) + Math.cos(oY)*Math.sin(d)*Math.cos(hdng) );
x = oX + Math.atan2(Math.sin(hdng)*Math.sin(d)*Math.cos(oY), Math.cos(d)-Math.sin(oY)*Math.sin(y));
y = y * 180 / Math.PI;
x = x * 180 / Math.PI;
return new GLatLng(y, x);
}
function GeoQuery() {
}
GeoQuery.prototype.CIRCLE='circle';
GeoQuery.prototype.COLORS=["#ff0000"];
var COLORI=0;
GeoQuery.prototype = new GeoQuery();
GeoQuery.prototype._map;
GeoQuery.prototype._type;
GeoQuery.prototype._radius;
GeoQuery.prototype._polyline;
GeoQuery.prototype._color ;
GeoQuery.prototype._points;
GeoQuery.prototype._centerHandlePosition;
GeoQuery.prototype.initializeCircle = function(radius, point, map) {
this._type = this.CIRCLE;
this._radius = radius;
this._map = map;
this._centerHandlePosition = point;
this._color = this.COLORS[COLORI++ % 3];
}
GeoQuery.prototype.render = function() {
if (this._type == this.CIRCLE) {
this._points = [];
var distance = this._radius/1000;
for (i = 0; i < 72; i++) {
this._points.push(destination(this._centerHandlePosition, i * 360/72, distance) );
}
this._points.push(destination(this._centerHandlePosition, 0, distance) );
//this._polyline = new GPolyline(this._points, this._color, 6);
this._polyline = new GPolygon(this._points, this._color, 1, 1, this._color, 0.2);
this._map.addOverlay(this._polyline)
}
}
////////////////////////////////////////////////////////////////////////////
function load() {
if(GBrowserIsCompatible()){
map = new GMap2(document.getElementById("map"),{mapTypes:[G_SATELLITE_MAP]});
var point = new GLatLng("30","120");
map.setCenter(point, 4);
map.addControl(new GLargeMapControl());
map.enableDragging();
map.enableDoubleClickZoom();
map.enableContinuousZoom();
map.enableScrollWheelZoom();
map.addControl(new GMapTypeControl());
createCircle(new GLatLng("30", "120"), 650000);
}
}
</script>
分享到:
相关推荐
下面将详细介绍Vue2googlemap的关键特性和使用方法。 1. **安装与配置** 安装Vue2googlemap通常通过npm进行,使用以下命令: ``` npm install vue2-google-map ``` 在项目中引入并注册该组件,确保已经获取到...
1. **加载地图**:使用`<div>`元素和`google.maps.Map`对象创建地图容器,通过设置中心点坐标、缩放级别等参数初始化地图。 2. **添加标记**:使用`google.maps.Marker`类创建标记,可以自定义标记图标,设置位置和...
通过本文的介绍,我们详细了解了谷歌地图API V3的各个组成部分以及如何使用这些组件来创建丰富的地图应用。无论是基本的地图显示,还是复杂的路线规划和地理编码功能,谷歌地图API V3都为开发者提供了强大而灵活的...
这个"google map的开发辅助utils.zip"压缩包提供了一个开源项目——"android-maps-utils",它是对Google Maps Android API的一个便捷扩展,旨在简化开发过程,提高开发效率。 `android-maps-utils`库包含了一系列...
在谷歌地图API中,画扇形通常涉及到对角度和弧度的理解,以及使用几何对象如圆形和路径。开发者可以利用API提供的`google.maps.Polygon`或`google.maps.Polyline`类来创建多边形或线,通过设置特定的坐标点来绘制...
- 使用Google Maps SDK for iOS时,应遵守Google的使用条款和隐私政策。 - 对于大规模的商业应用,可能需要考虑成本,因为超出免费额度后,可能会产生费用。 - 定期更新SDK以获取最新的功能和性能优化。 总之,...
然后,使用API的 `google.maps.Polygon` 类来创建并显示这个多边形。 其次,修改多边形主要涉及更新围栏区域的坐标。这可能是因为需要扩大或缩小围栏,或者调整其形状。修改多边形通常包括获取当前多边形的路径,...
- `center`: 地图的中心位置,用`LatLng`对象表示。 - `zoom`: 缩放级别。 - `mapTypeId`: 地图类型标识符,例如`'roadmap'`或`'satellite'`。 - `mapTypeControl`: 是否显示地图类型控制按钮,默认为`true`。 ...
在JavaScript编程领域,使用谷歌地图API(Google Maps API)是一种常见的方法来实现地图相关的功能,如定位、导航、标注和绘图。在这个项目中,"js基于谷歌地图API绘制可编辑圆形与多边形"是一个典型的示例,它展示...
在React.js的世界里,开发...总的来说,`react-gmaps`是一个强大且易于使用的React组件,它极大地简化了在React应用中集成Google Maps的过程,为开发者提供了丰富的地图功能,帮助构建出具有地图功能的现代Web应用。
通过这个类,我们可以加载各种地图服务提供商的数据,如OpenStreetMap、Google Maps或Here Maps等。要使用QGeoMapWidget,你需要先包含对应的头文件`<QtLocation>` 接着,我们需要设置地图服务提供商。这可以通过...
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { marker.showInfoWindow(); // Customize the infoWindow with your ...
让 Google Map V3 API 在 Visualforce 上显示帐户信息的简单代码 Read full blog post here at : http://www.oyecode.com/2015/01/how-to-add-google-map-in-salesforce.html Pin-Drop 动画脚本: marker = new ...
通过webbrowser加载html页面调用js的方式实现绘制可编辑圆形和多边形的功能。 要求:1.net 4.0 2.IE8以上 3.需要可以打开谷歌地图和谷歌开发key 4.因为是从之前的项目里剥离出来的,界面都是英文,不过不影响使用;
在给定的部分内容中可以看到,使用`google.maps.Map`方法来创建一个新的地图实例,并将其绑定到HTML页面中的`#map_canvas`元素上。 ```javascript var latlng = new google.maps.LatLng(30.277925, 120.177597); //...
在 Google Maps API V3 中,Map 是地图的核心组件,提供了多种配置选项和事件监听器。开发者可以使用 MapOptions 对象来配置地图的基本属性,如中心点、缩放级别、地图类型等。同时,MapTypeId 对象提供了多种地图...
React-Google-Maps库是专门为React.js框架设计的,它允许开发者通过声明式的组件来使用Google Maps服务。这个库提供了丰富的组件,如Map、Marker、InfoWindow等,使得开发者可以像操作React组件一样操作地图元素,极...
8. **地图服务集成**:AreaMap可能集成了地图数据服务,如高德、百度或谷歌地图等,开发者只需要配置相应的API密钥即可使用其地图数据。 9. **性能优化**:对于大数据量的地图元素,AreaMap可能会提供分块加载、...
总的来说,这个教程帮助我们理解如何使用 Google Maps JavaScript API 创建圆形覆盖物,这对于构建基于地理位置的应用程序非常实用。通过结合其他标签如“源码”和“工具”,我们可以进一步学习和优化地图功能,例如...
var map = new google.maps.Map(document.getElementById('map-canvas'), { center: {lat: -34.397, lng: 150.644}, zoom: 8 }); ``` 以上示例创建了一个地图实例,并将其放置在页面中的`map-canvas`元素内。地图...