`
xudongcsharp
  • 浏览: 475215 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

利用百度地图api获取任何区域的经纬度来实现google区域叠加显示

    博客分类:
  • GIS
 
阅读更多

利用baidu map获取区域边界经纬度
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取地区轮廓线</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf87194&v=1.1&services=true">
</script>
<style type="text/css">
body{font-size:13px;margin:10px}
#container{width:800px;height:500px;border:1px solid gray}
</style>
</head>
<body>
<div id="container"></div>
<br />
输入省、直辖市或县名称:<input type="text" id="districtName" style="width:80px" value="上海市徐汇区">
<input type="button" onclick="getBoundary()" value="获取轮廓线">

<script type="text/javascript">

if (typeof console == "undefined"){
  window.console = {log: function(){}};
}

var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5);
var stdMapCtrl = new BMap.NavigationControl({type: BMAP_NAVIGATION_CONTROL_SMALL})
map.addControl(stdMapCtrl);
map.enableScrollWheelZoom();
map.enableContinuousZoom();

function getBoundary(){       
    var bdary = new BMap.Boundary();
    var name = document.getElementById("districtName").value;
    bdary.get(name, function(rs){
        console.log(rs);
        map.clearOverlays();
        
        var bounds;
        var maxNum = -1, maxPly;
        
        var count = rs.boundaries.length; 
        for(var i = 0; i < count; i++){
            var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#ff0000"});
            map.addOverlay(ply);  
            
			//输出数组里的经纬度供google map使用
            var arrPts = ply.getPoints();
			for(var j=0; j<arrPts.length; j++){
				var point=arrPts[j];
				// new google.maps.LatLng(25.774252, -80.190262),
				document.getElementById("info").innerHTML += "new google.maps.LatLng("+point.lat + "," + point.lng +"),</br>";
			}
			
            if(arrPts.length > maxNum){
                maxNum = arrPts.length;
                maxPly = ply;
            }
            
        }

        if(maxPly){
            map.setViewport(maxPly.getPoints());
        }
                
    });   
}

</script>
<div id="info"></div>
</body>
</html>






利用区域边界经纬度构建区域叠加层
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Polygon Arrays</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=zh-CN"></script>
<script type="text/javascript">

  var map;
  var infoWindow;

  function initialize() {
    var myLatLng = new google.maps.LatLng(31.283245,121.469925);
    var myOptions = {
      zoom: 9,
      center: myLatLng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var bermudaTriangle;

    map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

    var triangleCoords = [
		new google.maps.LatLng(31.20858,121.441612),
		new google.maps.LatLng(31.201849,121.427716),
		new google.maps.LatLng(31.197289,121.42724),
		new google.maps.LatLng(31.197345,121.419019),
		new google.maps.LatLng(31.192827,121.420048),
		new google.maps.LatLng(31.194064,121.423732),
		new google.maps.LatLng(31.188265,121.422164),
		new google.maps.LatLng(31.182675,121.401248),
		new google.maps.LatLng(31.179076,121.402391),
		new google.maps.LatLng(31.174389,121.398113),
		new google.maps.LatLng(31.165411,121.401178),
		new google.maps.LatLng(31.168234,121.409394),
		new google.maps.LatLng(31.146651,121.418302),
		new google.maps.LatLng(31.133412,121.428014),
		new google.maps.LatLng(31.135425,121.442927),
		new google.maps.LatLng(31.125839,121.445316),
		new google.maps.LatLng(31.118985,121.441427),
		new google.maps.LatLng(31.12168,121.456645),
		new google.maps.LatLng(31.114317,121.458688),
		new google.maps.LatLng(31.111293,121.452177),
		new google.maps.LatLng(31.10717,121.464792),
		new google.maps.LatLng(31.108087,121.469294),
		new google.maps.LatLng(31.127959,121.476977),
		new google.maps.LatLng(31.151544,121.463475),
		new google.maps.LatLng(31.165902,121.476066),
		new google.maps.LatLng(31.185304,121.472056),
		new google.maps.LatLng(31.193775,121.482312),
		new google.maps.LatLng(31.197078,121.477052),
		new google.maps.LatLng(31.210676,121.473489),
		new google.maps.LatLng(31.209095,121.468773),
		new google.maps.LatLng(31.226415,121.464152),
		new google.maps.LatLng(31.217501,121.441627),
		new google.maps.LatLng(31.210243,121.444361),
		new google.maps.LatLng(31.20858,121.441612)
    ];

    bermudaTriangle = new google.maps.Polygon({
      paths: triangleCoords,
      strokeColor: "#FF0000",
      strokeOpacity: 0.8,
      strokeWeight: 3,
      fillColor: "#FF0000",
      fillOpacity: 0.35
    });

    bermudaTriangle.setMap(map);
    
    // Add a listener for the click event
    google.maps.event.addListener(bermudaTriangle, 'click', showArrays);
    
    infowindow = new google.maps.InfoWindow();
  }

  function showArrays(event) {

    // Since this Polygon only has one path, we can call getPath()
    // to return the MVCArray of LatLngs
    var vertices = this.getPath();

    var contentString = "<b>Bermuda Triangle Polygon</b><br />";
    contentString += "Clicked Location: <br />" + event.latLng.lat() + "," + event.latLng.lng() + "<br />";

    // Iterate over the vertices.
    for (var i =0; i < vertices.length; i++) {
      var xy = vertices.getAt(i);
      contentString += "<br />" + "Coordinate: " + i + "<br />" + xy.lat() +"," + xy.lng();
    }

    // Replace our Info Window's content and position
    infowindow.setContent(contentString);
    infowindow.setPosition(event.latLng);

    infowindow.open(map);
  }  
</script>
</head>
<body onload="initialize()">
  <div id="map_canvas"></div>
</body>
</html>
分享到:
评论

相关推荐

    将gps路线(经纬度)在卫星地图上显示

    标题中的“将GPS路线(经纬度)在卫星地图上显示”指的是使用计算机程序将GPS轨迹数据,即经度和纬度坐标,转化为可视化的地图路径。这个过程涉及到地理信息系统(GIS)的基础知识,以及特定编程语言(如Qt)的应用...

    百度地图JavaScriptAPI离线版.zip

    这个"百度地图JavaScriptAPI离线版.zip"文件包含了一整套用于离线环境使用的API资源,对于那些网络不稳定或者需要在无网络环境下使用地图功能的应用来说非常有用。 首先,我们来详细了解一下百度地图JavaScript API...

    谷歌地图API

    谷歌地图API是Google提供的一套JavaScript API,用于在网页上显示地图和提供相关的地图服务。最新版本为V3,于2010年6月15日更新。该API提供了丰富的功能和方法,涵盖了地图显示、地理编码、路线规划、海拔服务等多...

    谷歌地图API源代码

    7. **实时定位**:如果用户的设备支持,谷歌地图API还可以获取用户的位置信息,实现基于位置的服务。这通常结合`geolocation` API一起使用。 8. **服务限制与密钥管理**:使用谷歌地图API需要申请API密钥,并可能受...

    Google地图API接口

    Google地图API是Google提供的一系列接口,允许开发者在自己的网站或应用中集成地图功能,进行地理定位、路线规划、地图渲染等操作。这些接口广泛应用于各种场景,如出行导航、位置服务、商业分析等。本篇文章将深入...

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

    叠加层和地图类型是 Google Maps API V3 中的一种重要组件,用于在地图上叠加其他数据层。开发者可以使用 OverlayView 对象来配置叠加层的基本属性,如透明度、可见性等。MapType 对象提供了多种地图类型,如普通...

    Google 静态地图 API

    4. **标记和图层**:可以添加标记(markers)来表示特定地点,也可以叠加信息窗口(info windows)显示额外信息,或者添加路径(polylines)和多边形(polygons)来展示路线或区域。 5. **样式**:使用地图样式(map...

    Google_API.rar_google_google地图_地图

    1. **获取API密钥**: 在使用谷歌地图API之前,首先需要在谷歌开发者控制台创建项目并启用相应的API服务,然后生成API密钥,这是调用API时的身份凭证。 2. **集成API**: 将API密钥嵌入到你的HTML或JavaScript代码中...

    Google地图GISAPI应用实例

    对于初学者来说,这是一个很好的起点,能够帮助他们理解和掌握如何利用Google Maps API来实现各种功能。让我们逐一解析其中涉及的关键知识点。 1. **GIS基础**:GIS(Geographic Information System)是一种集成...

    google map api学习

    谷歌地图API(Google Maps API)是谷歌提供的一套强大的开发工具,允许开发者在自己的网站或应用中嵌入交互式地图,实现地理位置相关的功能。通过学习谷歌地图API,你可以创建定制的地图,添加标记、路径、信息窗口...

    谷歌地图API 第三版

    谷歌地图API第三版为开发者提供了强大的工具来集成地图功能,无论是用于Web应用还是移动应用,都能够轻松实现复杂的地图交互。通过了解这些核心类和方法,开发者可以更好地利用API来增强应用的功能性和用户体验。

    google maps api 开发大全

    《谷歌地图API开发大全》是一本深入探讨谷歌地图API技术的专业书籍,旨在帮助开发者全面掌握如何利用谷歌地图API创建互动式、功能丰富的地图应用。源代码的提供为读者提供了实践和学习的宝贵资源。 1. **谷歌地图...

    Google-Map-Api.rar_google map_google map api

    通过这个API,你可以自定义地图显示的内容,添加标记、路径、信息窗口,甚至实现复杂的地理位置计算。下面我们将详细探讨谷歌地图API的主要知识点。 1. **API概述** 谷歌地图API分为几个主要版本,包括JavaScript ...

    谷歌离线API 3.16.2包含实例

    谷歌地图API的地理编码服务能将地址转换为经纬度坐标,反之亦然。这对于定位用户输入的地址或根据坐标反查地址非常有用。 ### 4. 路径规划 通过API提供的路由服务,可以计算两点或多点之间的最佳路径,包括交通...

    谷歌地图API说明打包版

    谷歌地图API是一个强大的工具,允许开发者在网页上嵌入交互式地图,并进行各种自定义操作。这个打包版的API说明提供了详细的文档,使得没有网络条件的开发者也能查阅和学习。以下是一些主要知识点的详细说明: 1. *...

    GOOGLEAPI开发详解-googlemap 代码

    本文将深入讲解如何使用GOOGLE API,特别是针对Google Maps和Google Earth的整合应用,通过实例代码来帮助理解其工作原理。 首先,Google Maps API允许开发者在自己的网站上嵌入交互式地图,提供定位、导航、路线...

    google地图api详解

    `mapTypeId`属性允许你选择地图显示的类型,如ROADMAP(普通地图)、SATELLITE(卫星图像)、HYBRID(卫星图像与道路图层叠加)或TERRAIN(地形图)。 7. **初始化地图** 最后,地图在页面加载完成后通过`onload`...

    Google Map API Related

    综上所述,Google Map API为开发者提供了强大的地图集成能力,无论是在移动应用、网页还是桌面软件中,都能利用这些功能实现丰富的地图应用场景。学习和掌握Google Map API的相关知识,对于提升位置服务相关应用的...

    google地图api

    Google地图API是Google提供的一种强大的开发工具,允许开发者在网页上集成和自定义地图功能,让用户可以查看地图、搜索地点、获取导航信息等。它基于Google AJAX API加载器,这个框架使得API与其他Google服务的集成...

Global site tag (gtag.js) - Google Analytics