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. CentOS 6.8 LAMP 安装配置

    1.远程系统拒绝了连接: 需要关闭防火墙/etc/rc.d/init.d/iptables stop service iptables stop chkconfig iptables off sete ...

  2. WPF系列 Path表示语法详解(Path之Data属性语法)

    示例: XAML(代码A): <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ...

  3. COGS743. [网络流24题] 最长k可重区间集

    743. [网络流24题] 最长k可重区间集 ★★★   输入文件:interv.in   输出文件:interv.out   简单对比时间限制:1 s   内存限制:128 MB «问题描述: «编 ...

  4. [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)

    wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...

  5. Es6 箭头函数

    1.单参数function cheng(a=3){    return a*a;}let cheng= (a=3)=>a*a;console.log(cheng(9));2.多参数functio ...

  6. VS一直停留在“正在还原nuget程序包”

    VS一直停留在“正在还原nuget程序包” 在开发何问起收藏夹的时候,准备在WinFrom中加入网页浏览器,于是下载了一个CEFSharp的源码,生成解决方案的时候,一直提示“正在还原nuget程序包 ...

  7. [LeetCode] The Skyline Problem

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  8. 浅谈微信小程序

    在如火如荼的互联网技术发展中,各种各样的框架出现,当下最受关注的应该就是微信小程序了.从新闻论坛乃至qq群.微信群,很多很多从事IT工作的朋友喜欢讨论研究这个小程序.带着好奇心,我也参与其中. 第一步 ...

  9. CCPC2016沈阳站

    A.模拟 B.模拟 C(hdu5950):(矩阵快速幂) 题意:求f(n)=2f(n-2)+f(n-1)+n^4 分析:矩阵快速幂,(f(n),f(n-1),n^4,n^3,n^2,n,1) 注意:矩 ...

  10. k8s总结(图片打开略慢请知晓)