码迷,mamicode.com
首页 > Windows程序 > 详细

Google Map API V3开发(4)

时间:2016-04-15 11:57:38      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:

图层

Maps API 包含以下几种图层:

KmlLayer 对象,用于在 Maps API V3 图块叠加层中呈现 KML 和 GeoRSS 元素。

HeatmapLayer 对象,使用热图可视化技术来呈现地理数据。

FusionTablesLayer 对象,用于呈现 Google Fusion Tables 中包含的数据。

TrafficLayer 对象,用于呈现描述路况情况的图层和表示路况的叠加层。

TransitLayer 对象,用于在地图上显示您所在城市的公交网络。

WeatherLayer 和 CloudLayer 对象,可让您向地图添加天气预报和云图。

BicyclingLayer 对象,用于在公共图层中呈现自行车道的图层和/或自行车专用叠加层。默认情况下,在请求出行模式 BICYCLING 的路线时,系统会在DirectionsRenderer 中返回该图层。

PanoramioLayer 对象,用于添加 Panoramio 中的照片作为图层。

例:

var weatherLayer = new google.maps.weather.WeatherLayer({
  temperatureUnits: google.maps.weather.TemperatureUnit.FAHRENHEIT
});
weatherLayer.setMap(map);

10 服务

?  路线服务

?  距离矩阵服务

?  海拔服务

?  地理编码服务

?  最大缩放图像服务

?  街景视图服务

路线服务

您可以使用 DirectionsService 对象计算路线(使用各种交通方式)。此对象与 Google Maps API 路线服务进行通信,该服务会接收路线请求并返回计算的结果。您可以自行处理这些路线结果,也可以使用 DirectionsRenderer 对象呈现这些结果。

您可以通过文本字符串(例如,“伊利诺斯州芝加哥市”或“澳大利亚新南威尔士州达尔文市”)或 LatLng 值的形式来指定路线的起点和终点。路线服务可以使用一系列路标返回多段路线。路线可以显示为一条在地图上绘制路线的折线,此外,也可以显示为 <div> 元素中的一些文字说明(例如,“右转上中山南路”)。

距离矩阵服务

Google 的距离矩阵服务会使用给定的出行方式来计算多个起点和终点之间的行程距离和持续时间。

var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = "Greenwich, England";
var destinationA = "Stockholm, Sweden";
var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
  {
    origins: [origin1, origin2],
    destinations: [destinationA, destinationB],
    travelMode: google.maps.TravelMode.DRIVING,
    avoidHighways: false,
    avoidTolls: false
  }, callback);

function callback(response, status) {
  // See Parsing the Results for the basics of a callback function.
}

海拔服务

海拔服务提供了地球表面位置的海拔数据,包含海底深处位置(返回负值)。在这些情况下,Google 无法提供您请求的确切位置的精确海拔测量值,该服务将插入并返回四个最近位置的平均值。

function getElevation(event) {
  var locations = [];
  var clickedLocation = event.latLng;
  locations.push(clickedLocation);
  var positionalRequest = {
    ‘locations‘: locations
  }
  // Initiate the location request
  elevator.getElevationForLocations(positionalRequest, function(results, status) {
    if (status == google.maps.ElevationStatus.OK) {

      // Retrieve the first result
      if (results[0]) {

           //do something
      } else {
        alert("No results found");
      }
    } else {
      alert("Elevation service failed due to: " + status);
    }
  });
}

地理编码服务

地理编码是将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以根据该地理坐标放置标记或定位地图。

与此相反,将地图上的位置转换成易于理解的地址这一过程则称为“反向地理编码”。

最大缩放图像服务

Google Maps API 为地图类型图像提供了多种不同缩放级别的地图图块。大部分道路地图图像的缩放级别为 0 到 18(举例而言)。卫星图像的缩放级别更广,因为此类图像不是系统生成的,而是直接拍摄的。

在一些偏远地区(人口稀少的区域或公海区域)卫星图像并不能始终提供较高的缩放级别,因此您需要事先了解指定位置的图像的最高缩放级别。MaxZoomService 对象提供了一个简单的界面,供您查看 Google 地图为其提供卫星图像的给定位置的最大缩放级别。

function showMaxZoom(e) {
  maxZoomService.getMaxZoomAtLatLng(e.latLng, function(response) {
    if (response.status != google.maps.MaxZoomStatus.OK) {
      alert("Error in MaxZoomService");
      return;
    } else {
      alert("The maximum zoom at this location is: " + response.zoom);
    }
    map.setCenter(e.latLng);
  });
}

街景视图服务

Google 街景视图提供了从指定道路对整个覆盖范围的 360 度全景视角。

var panoramaOptions = {
  position: fenway,
  pov: {
    heading: 34, 
    pitch: 10,
    zoom: 1
  }
};
var panorama = new  google.maps.StreetViewPanorama(document.getElementById("pano"), panoramaOptions);
map.setStreetView(panorama);

Google Map API V3开发(4)

标签:

原文地址:http://www.cnblogs.com/jhlong/p/5394787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!