1、获取javascript API 服务方法,首先申请密钥(ak),才可成功载入APIJS文件。

用法例如以下:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

假设须要限制区域,那么须要引入以下的js

<!-- 区域限制js -->

<script type="text/javascript" src="http://api.map.baidu.com/library/AreaRestriction/1.2/src/AreaRestriction_min.js"></script>

2、设置样式,冲满全屏,弹出窗体的样式

body, html,#l-map{width: 100%;height: 100%;overflow: hidden;margin:0;}

3、调用百度地图

var map = new BMap.Map("l-map");          //创建地图实例

var point = new BMap.Point(111.818239, 41.386087);  //创建点坐标

map.centerAndZoom(point, 5);                 //初始化地图,设置中心点坐标和地图级别

map.enableScrollWheelZoom();

map.addControl(new BMap.NavigationControl());  //加入�默认缩放平移控件

4、加入�缩放平移控件

map.addControl(new BMap.NavigationControl());  //加入�默认缩放平移控件

map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}));  //右上角,仅包括平移和缩放button

map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT, type: BMAP_NAVIGATION_CONTROL_PAN}));  //左下角,仅包括平移button

map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, type: BMAP_NAVIGATION_CONTROL_ZOOM}));  //右下角,仅包括缩放button

map.enableScrollWheelZoom();    //启用滚轮放大缩小,默认禁用

map.enableContinuousZoom();    //启用地图惯性拖拽,默认禁用

5、区域限制必须引入上面的区域限制js

区域限制样例是仅仅显示北京市

var b = new BMap.Bounds(new BMap.Point(116.027143, 39.772348),

new BMap.Point(116.832025, 40.126349));

try {

BMapLib.AreaRestriction.setBounds(map, b);

} catch (e) {

alert(e);

}

6、加入�覆盖物,计时器调用覆盖物

//加入�覆盖物

function getBoundary(){

var bdary = new BMap.Boundary();

bdary.get("内蒙古", function(rs){       //获取行政区域

var count = rs.boundaries.length; //行政区域的点有多少个

for(var i = 0; i < count; i++){

var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#0000ff" ,fillColor: ""}); //建立多边形覆盖物 fillColor字体显示出来

map.addOverlay(ply);  //加入�覆盖物

map.setViewport(ply.getPath());    //调整视野

}

});

}

//计时器调用加入�覆盖物

setTimeout(function(){

//清除地图覆盖物

map.clearOverlays();

map.centerAndZoom(111.818239, 41.386087, 6);                 // 设置地图坐标,级别

//加入�行政区域覆盖

getBoundary();

}, 1000);

7、加入�标注

//point经纬度,txtinfo提示信息,type图片类型

function addMarker(point, txtInfo, type) {

var infoWindow = "";

var marker = new BMap.Marker(point, { icon: mapIcon(type) });

marker.addEventListener("click", function() {

infoWindow = new BMap.InfoWindow(txtInfo);

this.openInfoWindow(infoWindow);

});

map.addOverlay(marker);       //加入�标注

marker.setAnimation(BMAP_ANIMATION_BOUNCE); //动画效果

}

//创建ICON

function mapIcon(type) {

var mappng;

switch (parseInt(type)) {

case 1:

mappng = "${pageContext.request.contextPath}/images/triangle.png";

break;

case 2:

mappng = "${pageContext.request.contextPath}/images/ban.png";

break;

}

var mapIcon = new BMap.Icon(mappng,

new BMap.Size(24, 24), {

offset: new BMap.Size(0, -5),

imageOffset: new BMap.Size(0, 0)

});

return mapIcon;

}

8、移除标注

map.removeOverlay(marker);          //移除标注点

function removeMarker() {

  var mkrs = map.getOverlays();  //获取地图上的标注,从0開始循环

  for (var i=0; i < mkrs.length;i++) {

   //object Polygon 是行政区域描边覆盖物,不移除

   if(mkrs[i] != "[object Polygon]"){

    map.removeOverlay(mkrs[i]);  //移除标注点

   }

  }

 }

9、加入�文字

 function addTxt(point,txtInfo){

  var opts = {

    position : point,    // 指定文本标注所在的地理位置

    offset   : new BMap.Size(-20, 5)    //设置文本偏移量

  

  }

  var label=new BMap.Label(txtInfo,opts);

  label.setStyle({

    color : "#000000",

    fontSize : "12px",

    height : "20px",

    lineHeight : "20px",

    fontFamily:"微软雅黑",

    border:"#000000"

   });

  map.addOverlay(label);

 }

10、输入地址获取经纬度

public static final String KEY_1 = "您的密钥(ak)";   

      

    /**

     * 返回输入地址的经纬度坐标

     * key lng(经度),lat(纬度)

     */ 

    public static Map<String,String> getGeocoderLatitude(String address){ 

        BufferedReader in = null; 

        try { 

            //将地址转换成utf-8的16进制 

            address = URLEncoder.encode(address, "UTF-8"); 

//       假设有代理,要设置代理,没代理可凝视 

//      System.setProperty("http.proxyHost","192.168.1.188"); 

//      System.setProperty("http.proxyPort","3128"); 

            URL tirc = new URL("http://api.map.baidu.com/geocoder?address="+ address +"&output=json&key="+
KEY_1); 

             

            in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8")); 

            String res; 

            StringBuilder sb = new StringBuilder(""); 

            while((res = in.readLine())!=null){ 

                sb.append(res.trim()); 

            } 

            String str = sb.toString(); 

            Map<String,String> map = null; 

            if(StringUtils.isNotEmpty(str)){ 

                int lngStart = str.indexOf("lng\":"); 

                int lngEnd = str.indexOf(",\"lat"); 

                int latEnd = str.indexOf("},\"precise"); 

                if(lngStart > 0 && lngEnd > 0 && latEnd > 0){ 

                    String lng = str.substring(lngStart+5, lngEnd); 

                    String lat = str.substring(lngEnd+7, latEnd); 

                    map = new HashMap<String,String>(); 

                    map.put("lng", lng); 

                    map.put("lat", lat); 

                    return map; 

                } 

            } 

        }catch (Exception e) { 

            e.printStackTrace(); 

        }finally{ 

            try { 

                in.close(); 

            } catch (IOException e) { 

                e.printStackTrace(); 

            } 

        } 

        return null; 

    } 

    public static void main(String args[]){ 

        Map<String, String> json = MapAction.getGeocoderLatitude("北京市"); 

        System.out.println("lng : "+json.get("lng")); 

        System.out.println("lat : "+json.get("lat")); 

    }

百度地图js小结的更多相关文章

  1. 百度地图--JS版

    百度地图JS版本 ----选择关键字地图展示对应地址---- CSS body, html { width: %; height: %; margin: ; font-family: "微软 ...

  2. 外部引入的js 判断js脚本加载是否完成,完成后执行 相应的动作(以引入百度地图js为例)

    可以使用JQuery的 $.getScript(url,function(){});方法 $.getScript("http://api.map.baidu.com/getscript?v= ...

  3. 百度地图js根据经纬度定位和拖动定位点

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...

  4. 百度地图js版定位控件

    一 概述 百度地图在最新版已加入浏览器定位控件,个人认为应该是既高德地图更新了一个浏览器也能定位功能后,百度不甘落后自己简简单单,草草写了个这个功能的定位控件 GeolocationControl 这 ...

  5. 百度地图JS API不能使用position:fixed

    用于放置百度地图的dom元素及其任何一级父元素设置position:fixed属性时,js会报如下错误: Uncaught TypeError: Cannot read property 'offse ...

  6. 百度地图js lite api 支持点聚合

    百度地图lite api 是专门为h5 绘制海量点设计的,但是偏偏忽略掉了点聚合的需求,所以需要自己动手,做一次二次改造. 我们知道点聚合需要引入开源库: MarkerClusterer:  http ...

  7. 百度地图 JS API开发Demo01

    百度地图DEMO     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  8. 关于百度地图js api的getCurrentPosition定位不准确的解决方法

    很久之前帮大叔解决了一个gps坐标转换为百度地图坐标的问题.今天大叔又给我讲百度地图定位不准.我查了一下api,用了官方给出的这样一组函数. //创建查询对象 var geolocation = ne ...

  9. 百度地图 js api 实现 line 居中显示

    项目中有个需求需要在百度地图的中心显示画的线,以前用过mapPanto这个方法,传入坐标就可以将地图平移到这个坐标,不过不知道如何获取线的中心点,看了别人的代码,有以下两个函数可以实现这个功能 get ...

随机推荐

  1. PYTHON学习(三)之利用python进行数据分析(1)---准备工作

    学习一门语言就是不断实践,python是目前用于数据分析最流行的语言,我最近买了本书<利用python进行数据分析>(Wes McKinney著),还去图书馆借了本<Python数据 ...

  2. 用 python 来操作 docx, xlsx 格式文件(二)(使用 docx 库操作 docx 格式文件

    docx 库 文章结构: 一.docx 基本用,创建 docx 文件并添加数据 二.深入理解文本格式(format),并设置所格式属性(attribute) 三.深入理解样式(styles),以及如何 ...

  3. C#窗口矩形区域着色

    C#写的一个GUI窗口,有几百个矩形区域.每个矩形区域的颜色随时都可能改变,并且多次改变. 我放弃使用label绘制矩形,因为效果不好.拖控件的界面使用power packs中的rectanglesh ...

  4. (转载)使用curl 和 libjson 完成联网和数据解析

    转载地址:http://my.oschina.net/cocosgame/blog/71181 libjson 编译和使用 - 3. libjson的C接口 API http://blog.csdn. ...

  5. scrapy 学习笔记1

    最近一段时间开始研究爬虫,后续陆续更新学习笔记 爬虫,说白了就是获取一个网页的html页面,然后从里面获取你想要的东西,复杂一点的还有: 反爬技术(人家网页不让你爬,爬虫对服务器负载很大) 爬虫框架( ...

  6. WPS Office 2012 专业版 附正版序列号

    WPS Office 2012 专业版 附正版序列号 首先说说WPS的研发历史沿革:1988年5月,一个名叫求伯君的程序员凭借一台386电脑写出了WPS 1.0,从此开创了中文字处理时代,并迅速占领中 ...

  7. loadrunner 分用户日志

    loadrunner 分用户日志 loadrunner在run脚本时,模拟多用户并发场景下,通常需要分别关注每个用户的脚本执行日志,可以按照以下操作进行: 在“Run Load Tests”中选择需要 ...

  8. docker 解决network has active endpoints

    解决方式 使用 docker network disconnect -f {network} {endpoint-name},其中的 {endpoint-name} 可以使用命令 docker net ...

  9. 使用CSS更改图标的颜色

    我们经常在很多网站上见到更改网站的主题时,图标的颜色也改变了,我们总是觉的这一项功能非常伟大,因为我们知道使用CSS是无法完成更改图片的颜色的.那么,网站上随心所欲的图标颜色是采用N多个图片不断的切换 ...

  10. 爱奇艺全国高校算法大赛初赛C

    区间$dp$. 倒着考虑这件事件,肯定有最后一个取走的数字,假设是$a[k]$,那么最后一次取走的价值肯定是$a[0]*a[k]*a[n+1]$,之前取走的价值和为$[1,k-1]$的价值加上$[k+ ...