`
feirou520
  • 浏览: 119531 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

用Google Map 画圆形

阅读更多

    本来该功能是该网站的功能之一: 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基于Vue2x和google地图组件

    下面将详细介绍Vue2googlemap的关键特性和使用方法。 1. **安装与配置** 安装Vue2googlemap通常通过npm进行,使用以下命令: ``` npm install vue2-google-map ``` 在项目中引入并注册该组件,确保已经获取到...

    GoogleMap V3 中文 教程

    1. **加载地图**:使用`&lt;div&gt;`元素和`google.maps.Map`对象创建地图容器,通过设置中心点坐标、缩放级别等参数初始化地图。 2. **添加标记**:使用`google.maps.Marker`类创建标记,可以自定义标记图标,设置位置和...

    谷歌地图API-google map api v3

    通过本文的介绍,我们详细了解了谷歌地图API V3的各个组成部分以及如何使用这些组件来创建丰富的地图应用。无论是基本的地图显示,还是复杂的路线规划和地理编码功能,谷歌地图API V3都为开发者提供了强大而灵活的...

    google map的开发辅助utils.zip

    这个"google map的开发辅助utils.zip"压缩包提供了一个开源项目——"android-maps-utils",它是对Google Maps Android API的一个便捷扩展,旨在简化开发过程,提高开发效率。 `android-maps-utils`库包含了一系列...

    谷歌地图离线API3.16.2+简单纠偏算法+画扇形

    在谷歌地图API中,画扇形通常涉及到对角度和弧度的理解,以及使用几何对象如圆形和路径。开发者可以利用API提供的`google.maps.Polygon`或`google.maps.Polyline`类来创建多边形或线,通过设置特定的坐标点来绘制...

    googlemap sdk for ios

    - 使用Google Maps SDK for iOS时,应遵守Google的使用条款和隐私政策。 - 对于大规模的商业应用,可能需要考虑成本,因为超出免费额度后,可能会产生费用。 - 定期更新SDK以获取最新的功能和性能优化。 总之,...

    谷歌电子围栏,添加修改多边形围栏,获取经纬度点

    然后,使用API的 `google.maps.Polygon` 类来创建并显示这个多边形。 其次,修改多边形主要涉及更新围栏区域的坐标。这可能是因为需要扩大或缩小围栏,或者调整其形状。修改多边形通常包括获取当前多边形的路径,...

    谷歌MAP API_V3.pdf

    - `center`: 地图的中心位置,用`LatLng`对象表示。 - `zoom`: 缩放级别。 - `mapTypeId`: 地图类型标识符,例如`'roadmap'`或`'satellite'`。 - `mapTypeControl`: 是否显示地图类型控制按钮,默认为`true`。 ...

    js基于谷歌地图API绘制可编辑圆形与多边形

    在JavaScript编程领域,使用谷歌地图API(Google Maps API)是一种常见的方法来实现地图相关的功能,如定位、导航、标注和绘图。在这个项目中,"js基于谷歌地图API绘制可编辑圆形与多边形"是一个典型的示例,它展示...

    react-reactgmapsReactjs的一个Google地图组件

    在React.js的世界里,开发...总的来说,`react-gmaps`是一个强大且易于使用的React组件,它极大地简化了在React应用中集成Google Maps的过程,为开发者提供了丰富的地图功能,帮助构建出具有地图功能的现代Web应用。

    基于QT的Map实现

    通过这个类,我们可以加载各种地图服务提供商的数据,如OpenStreetMap、Google Maps或Here Maps等。要使用QGeoMapWidget,你需要先包含对应的头文件`&lt;QtLocation&gt;` 接着,我们需要设置地图服务提供商。这可以通过...

    Google Maps Android API v2新API全部使用方法的Demo

    googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { marker.showInfoWindow(); // Customize the infoWindow with your ...

    GoogleMapV3:让 Google Map V3 API 在 Visualforce 上显示帐户信息的简单代码

    让 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 ...

    C#winfrom调用谷歌地图API绘制可编辑圆形和多边形程序

    通过webbrowser加载html页面调用js的方式实现绘制可编辑圆形和多边形的功能。 要求:1.net 4.0 2.IE8以上 3.需要可以打开谷歌地图和谷歌开发key 4.因为是从之前的项目里剥离出来的,界面都是英文,不过不影响使用;

    googleMapsApiv3实验小例子

    在给定的部分内容中可以看到,使用`google.maps.Map`方法来创建一个新的地图实例,并将其绑定到HTML页面中的`#map_canvas`元素上。 ```javascript var latlng = new google.maps.LatLng(30.277925, 120.177597); //...

    Google Maps API V3 中文参考文档(JavaScript)

    在 Google Maps API V3 中,Map 是地图的核心组件,提供了多种配置选项和事件监听器。开发者可以使用 MapOptions 对象来配置地图的基本属性,如中心点、缩放级别、地图类型等。同时,MapTypeId 对象提供了多种地图...

    前端开源库-react-google-maps

    React-Google-Maps库是专门为React.js框架设计的,它允许开发者通过声明式的组件来使用Google Maps服务。这个库提供了丰富的组件,如Map、Marker、InfoWindow等,使得开发者可以像操作React组件一样操作地图元素,极...

    AreaMap

    8. **地图服务集成**:AreaMap可能集成了地图数据服务,如高德、百度或谷歌地图等,开发者只需要配置相应的API密钥即可使用其地图数据。 9. **性能优化**:对于大数据量的地图元素,AreaMap可能会提供分块加载、...

    预览文章: 初学 Google Maps JavaScript (5) 画圆指定范围

    总的来说,这个教程帮助我们理解如何使用 Google Maps JavaScript API 创建圆形覆盖物,这对于构建基于地理位置的应用程序非常实用。通过结合其他标签如“源码”和“工具”,我们可以进一步学习和优化地图功能,例如...

    谷歌地图API 第三版

    var map = new google.maps.Map(document.getElementById('map-canvas'), { center: {lat: -34.397, lng: 150.644}, zoom: 8 }); ``` 以上示例创建了一个地图实例,并将其放置在页面中的`map-canvas`元素内。地图...

Global site tag (gtag.js) - Google Analytics