android高德地图l判断点是否在园内,android加载高德地图请求服务器添加经纬度marker标记(调用h5加载)...

前言:(原创文章,转载请注明出处)

老板突发奇想要让用android加载h5作地图,还有根据请求的不一样经纬度在地图上显示出不一样的marker标记(。。。。这个破需求感受没啥大用处,可能也就不懂软件的人看着高大上吧)本人小白,不会h5,也不会js。根据本身写过的webview的demo加上后台(比我js懂得多)的帮助,终于攻克了这个小难题,下面给你们一个小教程,以避免走弯路。javascript

一:webview设置

webView.getSettings().setAppCacheEnabled(true);//是否使用缓存api集html

webView.getSettings().setJavaScriptEnabled(true);//js交互java

webView.getSettings().setDomStorageEnabled(true);//与地图交互jquery

webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//设置js可弹窗android

webView.setWebChromeClient(new WebChromeClient(){}//处理解析,渲染网页web

webView.setWebViewClient(new WebViewClient(){}//打开网页时不调用系统浏览器,而是在本地的webview显示api

二:js地图加载显示

设置地图的中心点及缩放级别数组

var map = new AMap.Map('container', {

resizeEnable: true,

center: [116.39, 39.9],

zoom: 5

});

添加marker标记(marker是后台传过来的坐标数据)浏览器

function didi(l,s){

var marker = new AMap.Marker({

position: new AMap.LngLat(114.38, 38.9), // 经纬度对象,也能够是经纬度构成的一维数组[114.38, 38.9]

title: ''

});

map.add(marker);

}

三:webview与js交互传值

加载本地html(“路径固定这样写,html文件名带后缀引用时就加上后缀,不带后缀引用时就不要加后缀名”)缓存

webView.loadUrl("file:///android_asset/xinwenben.html");

根据进度条显示地图加载状况

@Override

public void onProgressChanged(WebView view, int newProgress) {

if(newProgress==100){

Toast.makeText(MapActivity.this, "地图加载完毕", Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(MapActivity.this, "地图正在加载中", Toast.LENGTH_SHORT).show();

}

}

单个传值:

webView.loadUrl("javascript:didi(" + strLong + "," + strLat +")");//传参(经纬度)

集合传值:

/**

* 打开网页时不调用系统浏览器,而是在本地webview显示

*/

webView.setWebViewClient(new WebViewClient(){

@Override

public void onPageFinished(WebView view, String url) {

Log.d("fan","此次地图加载完成了");

String[] strings=new String[10];

for (int i=0;i

//集合传参

webView.loadUrl("javascript:didi(要传的集合);

}

// Log.d("fan","..."+strLong+"..."+strLat);

}

});

返回键点击事件

/**

* 重写返回键点击事件

* @param keyCode

* @param event

* @return

*/

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(webView.canGoBack() && keyCode==KeyEvent.KEYCODE_BACK){

webView.goBack();//返回上一层页面

}

return true;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值