起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1707|回复: 1

[处理中1] 获取位置信息接口如何获得具体位置信息,例如省、市等具体地点?

[复制链接]

18

主题

26

帖子

86

积分

初级会员

Rank: 2

积分
86
QQ
发表于 2016-9-20 11:03:10 | 显示全部楼层 |阅读模式
获取位置信息接口

说明:cancel是用户取消或拒绝后回调函数,下同。

geo.getLocation({
    success : function(res) {
        alert(JSON.stringify(res));
    },
    cancel : function(res) {
        alert('用户拒绝授权获取地理位置');
    },
    fail : function(res) {
         alert("fail:"+JSON.stringify(res));
    }
});


返回的res数据是地理坐标,能不能返回具体的地理位置?例如省、市、县等?

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-20 17:51:43 | 显示全部楼层
你是说利用百度地图获取地理位置,getLocatio是调用的百度地图的能力,所以获取地理位置,可以使用百度地图的API
示例代码如下:

  1. // 百度地图
  2.         Model.prototype.modelLoad = function(event) {
  3.                 // 调用百度地图
  4.                 require([ 'http://api.map.baidu.com/api?v=2.0&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
  5.                         if (window.BMap && window.BMap.Map) {
  6.                                 window._baiduInit();
  7.                         }
  8.                 });

  9.                 var self = this;
  10.                 var id = this.getIDByXID("mapDiv");// mapDiv中添加地图
  11.                 window._baiduInit = function() {
  12.                         // 调用百度地图API功能
  13.                         var map = new BMap.Map(id);// 创建定位对象
  14.                         var geol = new BMap.Geolocation()// 创建定位对象
  15.                         var geoc = new BMap.Geocoder();

  16.                         // 定位成功开始画地图
  17.                         var success = function(data) {

  18.                                 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
  19.                                 var local = new BMap.LocalSearch(map, {
  20.                                         renderOptions : {
  21.                                                 map : map
  22.                                         }
  23.                                 });
  24.                                 local.search(self.position);

  25.                                 // 给标注添加跳转功能
  26.                                 map.addEventListener("click", function(e) {
  27.                                         var placename = e.street;
  28.                                         var data = self.comp("baasData1");
  29.                                         var addr;
  30.                                         geoc.getLocation(e.point, function(result) {
  31.                                                 addr = result.addressComponents.district;
  32.                                                 data.filters.setVar("placename",addr);
  33.                                                 data.refreshData();
  34.                                                 if(data.count()== 0){
  35.                                                         data.newData({
  36.                                                                 defaultValues : [ {
  37.                                                                         placename : addr
  38.                                                                 } ]
  39.                                                         })
  40.                                                         data.saveData();
  41.                                                 }
  42.                                         })
  43.                                         // 点击获取经纬度
  44.                                         self.lng = e.point.lng;
  45.                                         self.lat = e.point.lat;
  46.                                         alert(e.point.lng + ", " + e.point.lat);
  47.                                         // 点击跳转--传参
  48.                                         if (e.overlay) {
  49.                                                 if (confirm("是否查看景点信息?")) {
  50.                                                         var params = {
  51.                                                                 position:self.position
  52.                                                         }
  53.                                                         justep.Shell.showPage('DetailsPage', params);
  54.                                                 } else {
  55.                                                 }
  56.                                         } else {
  57.                                         }
  58.                                 });

  59.                                 // 添加带有定位的导航控件
  60.                                 var navigationControl = new BMap.NavigationControl({
  61.                                         // 靠左上角位置
  62.                                         anchor : BMAP_ANCHOR_TOP_LEFT,
  63.                                         // LARGE类型
  64.                                         type : BMAP_NAVIGATION_CONTROL_LARGE,
  65.                                         // 启用显示定位
  66.                                         enableGeolocation : true
  67.                                 });
  68.                                 map.addControl(navigationControl);

  69.                         }
  70.                         // 若定位失败返回
  71.                         var error = function() {
  72.                                 alert("定位失败");
  73.                         }
  74.                         // 定位法获取坐标点
  75.                         navigator.geolocation.getCurrentPosition(success, error)

  76.                 };
  77.         };

复制代码
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-3 20:40 , Processed in 0.055149 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表