浏览器中展示地图

本文介绍了在Android应用程序中如何内嵌地图展示特定位置。通过使用百度地图API,当已知经纬度时可以直接展示,未知时通过地址转换获取经纬度。详细步骤包括异步任务获取经纬度,然后通过URI启动地图应用。此外,还提供了在Webview中展示地图的选项。
摘要由CSDN通过智能技术生成

我们在APP中开发中经常会内嵌地图展示某一具体位置,比如用地图展示某一个具体位置。以上海徐家汇为例,如下图所示:


如果我们直接使用浏览器打开的话,参考http://developer.baidu.com/map/uri-introweb.htm

如果我们已知经纬度(lat, lng),那么很方便,我们可以使用下面的方式来展示

Intent intent = new Intent();

           intent.setAction("android.intent.action.VIEW");

           Uri content_url = Uri

                 .parse("http://api.map.baidu.com/ marker?location=31.200209,121.443481&output=html");

           intent.setData(content_url);

           startActivity(intent);

结果也能正确显示。但是更多时候我们无法知道确切经纬度,只有具体地名,那么我们又该如何处理呢? 百度WEB API都帮我们想到了这些问题,我们可以先使用http://api.map.baidu.com/geocoder?address=上海徐家汇&output=json方法来获取经纬度,进而使用上面的方式展示即可。注意我们使用的是json,如果使用Html展示,那么下面内容为:

Intent intent = new Intent();

           intent.setAction("android.intent.action.VIEW");

           Uri content_url = Uri

                 .parse("http://api.map.baidu.com/geocoder?address=上海徐家汇&output=html");

           intent.setData(content_url);

           startActivity(intent);

显示结果为:

如果需要得到上面实际地图结果,需要点击椭圆形中的地图图标才会进入地图模式,得到:

这样就很麻烦,需要用户点击一次才可以得到想要的内容。

故我们的方式为先用异步处理获得经纬度,然后填充到上面的API展示相关内容即可。具体实现代码如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值