Google Map API V3开发(1)

Google Map API V3开发(2)

Google Map API V3开发(3)

Google Map API V3开发(4)

Google Map API V3开发(5)

Google Map API V3开发(6) 代码

11 

?  AdSense Library

?  绘图库

?  几何图形库

?  Panoramio 图层(库)

?  地方信息库

?  天气和云况图层(库)

几何图形库

Google Maps JavaScript API V3 几何图形库提供了一些实用程序函数,以便计算地球表面的几何数据。该库包含以下三个命名空间:

spherical,其中包含球面几何图形实用程序,可用于通过纬度和经度计算角度、距离和面积。

encoding,其中包含一些实用程序,可用于根据编码折线算法对折线路径进行编码和解码。

poly,其中包含一些实用程序函数,用于有关多边形和折线的计算。

要计算该距离,请调用 computeDistanceBetween(),并向其传递两个 LatLng 对象。

在有多个位置的情况下,您可改为使用 computeLength() 来计算给定路径的长度。

距离结果以米为单位表示。

要计算多边形区域的面积(以平方米为单位),请调用 computeArea(),并传递 LatLng 对象数组以定义闭合区域。

?    距离计算

//根据经纬度计算距离

private double rad(double d)

{

return d * Math.PI / 180.0;

}

public double getDistance(double lat1, double lng1, double lat2, double lng2)

{

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) + Math.Cos(radLat1) * Math.Cos(radLat2) *

Math.Pow(Math.Sin(b / 2), 2)));

s = s * 6378137;

s = Math.Round(s * 10000);

s = s / 10000;

return s;//计算单位:公里

}

地方信息库

?  地方搜索请求

var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

var request = {
    location: pyrmont,
    radius: '500',
    types: ['store']
  };

service = new google.maps.places.PlacesService(map);
  service.search(request, callback);

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

?  文字搜索请求

var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

var request = {
    location: pyrmont,
    radius: '500',
    query: 'restaurant'
  };

service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);

?  地方详情请求

地方信息服务不仅可以提供某区域内的地方信息列表,还可以返回关于特定地方的详细信息。当地方搜索响应中返回某个地方后,其 reference 属性可用于请求关于该地方的更多详情,例如其完整地址、电话号码用户评分和评论等。

var request = {
  reference: 'CnRkAAAAGnBVNFDeQoOQHzgdOpOqJNV7K9-c5IQrWFUYD9TNhUmz5-aHhfqyKH0zmAcUlkqVCrpaKcV8ZjGQKzB6GXxtzUYcP-muHafGsmW-1CwjTPBCmK43AZpAwW0FRtQDQADj3H2bzwwHVIXlQAiccm7r4xIQmjt_Oqm2FejWpBxLWs3L_RoUbharABi5FMnKnzmRL2TGju6UA4k'
};

reference,包含可用于日后查询“详情”服务的令牌。该令牌可能与向“详情”服务发送的请求中所使用的引用不同。建议您定期更新为地方信息存储的引用。尽管该令牌可唯一地标识地方,但反之则不然:一个地方可能拥有多个有效的引用令牌。

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    createMarker(place);
  }
}

?  地方信息自动填充

“地方自动填充”功能会附到您网页上的文本字段中,并监控用户在该字段中输入的字符。在用户输入文字的同时,自动填充会采用下拉选择列表的形式向应用返回地方预测。

var defaultBounds = new google.maps.LatLngBounds(
  new google.maps.LatLng(-33.8902, 151.1759),
  new google.maps.LatLng(-33.8474, 151.2631));

var input = document.getElementById('searchTextField');
var options = {
  bounds: defaultBounds,
  types: ['establishment']
};

autocomplete = new google.maps.places.Autocomplete(input, options);

?  获取地方信息

当用户从附加到文本字段的预测中选择了一个地方后,该服务就会触发 place_changed 事件。地方信息服务还会返回 PlaceResult 对象,您可以通过对 Autocomplete 对象调用 getPlace() 来访问该对象。

google.maps.event.addListener(autocomplete, 'place_changed', function() {
  var place = autocomplete.getPlace();
  if (place.geometry.viewport) {
    map.fitBounds(place.geometry.viewport);
  } else {
    map.setCenter(place.geometry.location);
    map.setZoom(17);
  }
  var image = new google.maps.MarkerImage(
      place.icon, new google.maps.Size(71, 71),
      new google.maps.Point(0, 0), new google.maps.Point(17, 34),
      new google.maps.Size(35, 35));
  marker.setIcon(image);
  marker.setPosition(place.geometry.location);
});

Google Map API V3开发(5)的更多相关文章

  1. Google Map API V3开发(1)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  2. Google Map API V3开发(2)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  3. Google Map API V3开发(3)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  4. Google Map API V3开发(4)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  5. Google Map API V3开发(6) 代码

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  6. Google map API V3

    本文主要总结Google map API V3使用中最简单也是最常见的一些操作以及相关概念,如果需要更加详细的信息,请直接阅读Google提供的关于map的文档. google map api v3文 ...

  7. Google Map API V3调用arcgis发布的瓦片地图服务

    由于最近项目需要用到CAD制作的地图,但之前一直使用的是用谷歌离线瓦片地图的方式,怎么样把CAD图像地图一样有缩放,移动的功能放到网页显示成了难题, 原先的谷歌地图的代码难道就不能用了?重新写一套代码 ...

  8. Google 地图 API V3 针对移动设备进行开发

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

  9. 如何使用Google Map API开发Android地图应用

    两年前开发过的GoogleMap已经大变样,最近有项目要用到GoogleMap,重新来配置Android GoogleMap开发环境,还真是踩了不少坑. 一.下载Android SDK Manager ...

随机推荐

  1. 从零自学Hadoop(17):Hive数据导入导出,集群数据迁移下

    阅读目录 序 将查询的结果写入文件系统 集群数据迁移一 集群数据迁移二 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephis ...

  2. sizeof

    一.sizeof使用的场合: 1.sizeof操作符的一个主要用途是与存储分配和I/O系统那样的例程进行通信.例如: void* malloc(size_t size); size_t fread(v ...

  3. linux shell 变量

  4. FeWeb基础之JavaScript简介

    FeWeb基础之JavaScript简介 1.JavaScript的基本介绍 JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,它是通过嵌入或调入在标准的HTML语言中实现的.Ja ...

  5. Easy UI常用插件使用

    一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常 ...

  6. app测试总结

    1.安全测试(权限) 1)软件权限:其中包括发送信息,拨打电话,链接网络,访问手机信息,联系人信息等等 2)数据在本地的存储.传输等 3)执行某些操作时导致的输入有效性验证.授权.数据加密等方面 4) ...

  7. Log4J日志配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  8. Python-18-Django 基础篇

    1. Web 框架介绍 具体介绍Django之前,必须先介绍WEB框架等概念. Web框架:通俗地讲,就是别人已经设定好的一个web网站模板,你学习它的规则,然后「填空」或「修改」成你自己需要的样子. ...

  9. .net Core学习笔记:Windows环境搭建

    1.安装 VS2015 Update3.如果已经安装了VS2015,但不是Update3版本,请在VS的工具 --> 扩展与更新 中执行update3的升级(大约需要2小时). 2..net C ...

  10. .NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息

    今天在 MSDN 博客上看到了 ASP.NET 5 Beta5 的发布消息(详见 ASP.NET 5 Beta5 Now Available),从中知道了 2 个新特性: 1. DNX: New IR ...