精华内容
下载资源
问答
  • vue跨页面定位到锚点位置

    千次阅读 2019-11-20 16:19:19
     //js的内置方法,可滚动视图位置至元素位置   var targetOffset=$(selector).offset().top;   console.info("targetOffset",anchor,targetOffset)  $('html,body').animate({  scrollTop: ...

    效果:

    header页面:

    <a :href="'#/about?maodian=gsjj'">公司介绍</a>

    <a :href="'#/about?maodian=fzlc'">发展历程</a>

     <a :href="'#/about?maodian=ryzz'">荣誉资质</a>

    <a :href="'#/about?maodian=mtsy'">媒体声誉</a>

    about页面:

    <script>

    import {goAnchor,GetQueryString} from '../../static/js/common';

    export default {

      name: 'HelloWorld',

      data () {

        return {}

      },

      mounted:function (){

        let maodian=this.GetQueryString('maodian');//进入页面,如果带有锚点参数,则跳转至锚点地方,参数值就是id名

        console.info("*****",maodian)

        if(maodian){

            this.goAnchor('#'+maodian);

        }

      },

      methods:{

        goAnchor,

        GetQueryString,

      },

    }

    </script>

    about页面引入的common.js

    //跳转到锚点

    function goAnchor(selector) {

        console.info("selector1",selector)

        var anchor = this.$el.querySelector(selector);//获取元素

        console.info("anchor",anchor)

        if(anchor) {

            setTimeout(()=>{//页面没有渲染完成时是无法滚动的,因此设置延迟

                //anchor.scrollIntoView(); //js的内置方法,可滚动视图位置至元素位置            

                var targetOffset=$(selector).offset().top; 

                console.info("targetOffset",anchor,targetOffset)

                $('html,body').animate({

                    scrollTop: targetOffset

                },

                1000);

            },500);

        } 

    };

    //获取参数

    function GetQueryString(name){

        //var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");

        var href = window.location.href;

        var r = getSearchString(name,href);

        if (r != null) return decodeURI(r);

        return null;

    }

    function getSearchString(key, Url) {

        var str = Url;

        str = str.substring(1, str.length);    

        if(str.indexOf("?")!=-1){

            var arr = str.split("?")[1].split("&");// 获取?后的参数内容,并以&分隔字符串,获得类似name=xiaoli这样的元素数组

            var obj = new Object();

            // 将每一个数组元素以=分隔并赋给obj对象

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

                var tmp_arr = arr[i].split("=");

                obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]);

            }

            return obj[key];

        }

    }

    export {

        goAnchor,

        GetQueryString

    }

     

    展开全文
  • 特别注意在获取发布版本安全码时确定自己已经创建了一个****.jks文件,在控制台才能获取安全码。 第三步、修改Androidmanifest.xml文件 第四步、在mainActivity.java中添加定位代码 定位结果 附录:完整关键代码...

    第一步、在高德开放平台先注册自己的用户
    第二步、获取key高德地图获取key流程
    特别注意在获取发布版本安全码时确定自己已经创建了一个****.jks文件,在控制台才能获取安全码。
    创建自己的jks文件

    第三步、修改Androidmanifest.xml文件
    参考高德地图开发指南

    第四步、在mainActivity.java中添加定位代码
    参考高德地图定位
    定位结果
    记得开启后台自己app位置获取权限
    附录:完整关键代码如下
    1、Androidmanifest.xml

    <?xml version="1.0" encoding="utf-8"?>













    <!--用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <!--用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用于访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <!--用于写入缓存数据到扩展存储卡-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <!--用于申请调用A-GPS模块-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <!--用于申请获取蓝牙信息进行室内定位-->
    <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="183929d31ad6fd06e9b2951b20dc3cd6"/>
    
        <service
            android:name="com.amap.api.location.APSService">
        </service>
        
    </application>
    

    2、mainActivity.java文件
    package com.fafu.administrator.fufamap;
    import android.location.Location;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import com.amap.api.location.AMapLocation;
    import com.amap.api.location.AMapLocationClient;
    import com.amap.api.location.AMapLocationClientOption;
    import com.amap.api.location.AMapLocationListener;
    import com.amap.api.maps.AMap;
    import com.amap.api.maps.CameraUpdateFactory;
    import com.amap.api.maps.LocationSource;
    import com.amap.api.maps.MapView;
    import com.amap.api.maps.model.MyLocationStyle;

    public class MainActivity extends AppCompatActivity implements LocationSource, AMapLocationListener {

    MapView mMapView = null;
    
    //初始化地图控制器对象
    AMap aMap;
    
    //定位需要的数据
    LocationSource.OnLocationChangedListener mListener;
    AMapLocationClient mlocationClient;
    AMapLocationClientOption mLocationOption;
    
    //定位蓝点
    MyLocationStyle myLocationStyle;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取地图控件引用
        mMapView = (MapView) findViewById(R.id.map);
        //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
        mMapView.onCreate(savedInstanceState);
        if (aMap == null) {
            aMap = mMapView.getMap();
    
        }
        //设置地图的放缩级别
        aMap.moveCamera(CameraUpdateFactory.zoomTo(12));
        // 设置定位监听
        aMap.setLocationSource(this);
        // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
        aMap.setMyLocationEnabled(true);
        // 设置定位的类型为定位模式,有定位、跟随或地图根据面向方向旋转几种
        aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE);
    
    
        //蓝点初始化
        myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。
        myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。
        aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style
        //aMap.getUiSettings().setMyLocationButtonEnabled(true);设置默认定位按钮是否显示,非必需设置。
        aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。
        myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)默认执行此种模式。
    
    
        myLocationStyle.showMyLocation(true);
    
        aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {
            @Override
            public void onMyLocationChange(Location location) {
                //从location对象中获取经纬度信息,地址描述信息,建议拿到位置之后调用逆地理编码接口获取
            }
        });
    }
    
    
    @Override
    protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
        mMapView.onResume();
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
        mMapView.onPause();
    }
    
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
        mMapView.onSaveInstanceState(outState);
    }
    
    
    //--定位监听---------
    
    /**
     * 激活定位
     */
    @Override
    public void activate(OnLocationChangedListener onLocationChangedListener) {
        mListener = onLocationChangedListener;
        if (mlocationClient == null) {
            //初始化定位
            mlocationClient = new AMapLocationClient(this);
            //初始化定位参数
            mLocationOption = new AMapLocationClientOption();
            //设置定位回调监听
            mlocationClient.setLocationListener(this);
    
            //设置为高精度定位模式
            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
            //设置定位参数
            mlocationClient.setLocationOption(mLocationOption);
            // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
            // 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求
            // 在定位结束后,在合适的生命周期调用onDestroy()方法
            // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
            mlocationClient.startLocation();//启动定位
        }
    
    }
    
    /**
     * 停止定位
     */
    @Override
    public void deactivate() {
        mListener = null;
        if (mlocationClient != null) {
            mlocationClient.stopLocation();
            mlocationClient.onDestroy();
        }
        mlocationClient = null;
    }
    
    
    //定位回调  在回调方法中调用“mListener.onLocationChanged(amapLocation);”可以在地图上显示系统小蓝点。
    @Override
    public void onLocationChanged(AMapLocation aMapLocation) {
        if (mListener != null && aMapLocation != null) {
            if (aMapLocation != null && aMapLocation.getErrorCode() == 0) {
                mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点
    
            } else {
                String errText = "定位失败," + aMapLocation.getErrorCode() + ": " + aMapLocation.getErrorInfo();
                Log.e("定位AmapErr", errText);
            }
        }
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
        mMapView.onDestroy();
        if (null != mlocationClient) {
            mlocationClient.onDestroy();
        }
    }
    

    }
    详细请参考高德定位开发指南

    展开全文
  • 使用百度地图的API其实在代码上并不是特别困难,参考一下官网开发指南或者技术书籍都比较好理解,主要的比较麻烦的地方是出在jar,so文件的...解决百度地图找不SDKInitializer,无法解析的问题 http://blog.csdn...

    使用百度地图的API其实在代码上并不是特别困难,参考一下官网开发指南或者技术书籍都比较好理解,主要的比较麻烦的地方是出在jar,so文件的导入与LocationManager的使用,本篇主要是给一个代码的参考,有读者在其他方面遇到困难的可以参考笔者的其他几篇博客。

     

    jar与so:  

     

    解决百度地图找不到SDKInitializer,无法解析的问题

    http://blog.csdn.net/double2hao/article/details/49882693

     

    Android Studio百度地图入门(导入jar与so文件)

     

     

     

     

    http://blog.csdn.net/double2hao/article/details/49862435

     

     

     

    Android Studio查看SHA1和MD5(附带keystore创建)

     

    http://blog.csdn.net/double2hao/article/details/49861247

     

    LocationManager

    android LocationManager的简单使用(获取经纬度信息到textview显示)

    http://blog.csdn.net/double2hao/article/details/49846953

     

     

    还是先上一下效果:

     

     

     

    MainActivity:

     

    import android.app.Activity;
    import android.content.Context;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.Toast;
    
    
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.BaiduMap;
    import com.baidu.mapapi.map.MapStatusUpdate;
    import com.baidu.mapapi.map.MapStatusUpdateFactory;
    import com.baidu.mapapi.map.MapView;
    import com.baidu.mapapi.map.MyLocationConfiguration;
    import com.baidu.mapapi.map.MyLocationData;
    import com.baidu.mapapi.model.LatLng;
    
    import java.util.List;
    
    public class MainActivity extends Activity {
    
        private MapView mapView;
        private BaiduMap baiduMap;
        private LocationManager locationManager;
        private  String provider;
        private boolean isFirstLocate =true;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            SDKInitializer.initialize(getApplicationContext());
            setContentView(R.layout.activity_main);
            mapView = (MapView) findViewById(R.id.map_view);
            baiduMap=mapView.getMap();
            //设置位置提供器
            setLovationManager();
            //将显示位置的功能开启
            baiduMap.setMyLocationEnabled(true);
        }
    
        private void setLovationManager() {
            locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
            //获取所有可用的位置提供器
            List<String> providerList=locationManager.getProviders(true);
            if(providerList.contains(LocationManager.GPS_PROVIDER)){
                provider=LocationManager.GPS_PROVIDER;
            }else if(providerList.contains(LocationManager.NETWORK_PROVIDER)){
                provider=LocationManager.NETWORK_PROVIDER;
            }else {
                //当前没有可用的位置提供器时,弹出Toast提示
                Toast.makeText(this,"没有可用的位置提供器",Toast.LENGTH_SHORT).show();
                return;
            }
            Location location=locationManager.getLastKnownLocation(provider);
            if(location!=null){
                navigateTo(location);
            }
    
            locationManager.requestLocationUpdates(provider,5000,5,locationListener);
        }
    
        private void navigateTo(Location location) {
            //如果是第一次创建,就获取位置信息并且将地图移到当前位置
            //为防止地图被反复移动,所以就只在第一次创建时执行
            if(isFirstLocate){
                //LatLng对象主要用来存放经纬度
                //zoomTo是用来设置百度地图的缩放级别,范围为3~19,数值越大越精确
                LatLng ll=new LatLng(location.getLatitude(),location.getLongitude());
                MapStatusUpdate update= MapStatusUpdateFactory.newLatLng(ll);
                baiduMap.animateMapStatus(update);
                update=MapStatusUpdateFactory.zoomTo(16f);
                baiduMap.animateMapStatus(update);
                isFirstLocate=false;
            }
    
            //封装设备当前位置并且显示在地图上
            //由于设备在地图上显示的位置会根据我们当前位置而改变,所以写到if外面
            MyLocationData.Builder locationBuilder=new MyLocationData.Builder();
            locationBuilder.latitude(location.getLatitude());
            locationBuilder.longitude(location.getLongitude());
            MyLocationData locationData=locationBuilder.build();
            baiduMap.setMyLocationData(locationData);
        }
    
        LocationListener locationListener =new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                if(locationManager!=null)
                    navigateTo(location);
            }
    
            @Override
            public void onStatusChanged(String s, int i, Bundle bundle) {
    
            }
    
            @Override
            public void onProviderEnabled(String s) {
    
            }
    
            @Override
            public void onProviderDisabled(String s) {
    
            }
        };
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //最后要销毁mapView
            //关闭程序时将监听器移除
            //关闭可以显示位置的功能
            mapView.onDestroy();
            if(locationManager!=null){
                locationManager.removeUpdates(locationListener);
            }
            baiduMap.setMyLocationEnabled(false);
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            mapView.onPause();
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            mapView.onResume();
        }
    }

     

     

     

     

     

    activity_main:

     

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        >
        <com.baidu.mapapi.map.MapView
            android:id="@+id/map_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clickable="true">
    
        </com.baidu.mapapi.map.MapView>
    
    </LinearLayout>

     

     

     

     

     

    Androidmanifest:

     

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.baidumaptest2">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <meta-data
                android:name="com.baidu.lbsapi.API_KEY"
                android:value="lPdICf3mOjPpwXsUzv8Omgec"/>
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name"
                android:theme="@style/AppTheme.NoActionBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
        //以下为权限设置
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.USE_CREDENTIALS" />
        <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
        <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
        <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
        </permission>
        <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
        </uses-permission>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
        </uses-permission>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
        </uses-permission>
        <uses-permission android:name="android.permission.INTERNET" >
        </uses-permission>
        <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >
        </uses-permission>
        <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
        </uses-permission>
        <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
        <uses-permission android:name="android.permission.WAKE_LOCK" >
        </uses-permission>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_GPS" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.READ_SMS" />
        <uses-permission android:name="android.permission.SEND_SMS" />
        <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.CAMERA" >
        </uses-permission>
        <uses-permission android:name="android.permission.RECORD_AUDIO" >
        </uses-permission>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
        </uses-permission>
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.BROADCAST_STICKY" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <!-- 来电消音 -->
        <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" >
        </uses-permission>
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    </manifest>
    

     

     

     

     

     

                             

    展开全文
  • 主要实现功能: a.进入地图界面,会自动获取...左下角定位当前位置实现,当移动地图到别位置,点击左下角图标,会回归当前位置 下面是代码的实现 1. app.json文件中 "permission":{ "scope.userLocat...

    主要实现功能:

    a.进入地图界面,会自动获取当前位置(用户需授权地理位置权限),并显示省市区在左上角,根据个人需求,我只显示了区
    b.大头针实现,拖动地图,大头针都能获取到位置
    c.左下角定位当前位置实现,当移动地图到别的位置,点击左下角图标,会回归到当前位置

     

    下面是代码的实现
    1. app.json文件中

      "permission":{
       "scope.userLocation":{
         "desc":"授权当前位置"
       }
      }

    效果图

    弹出授权权限的框,让用户手动授权

     

    2. map.wxml 布局文件

    <view class='view-c'>
    <view class='view-top'>
    <text style="font-size: 24rpx;margin-top: 40rpx;  color: #b65151">当前:{{district}}</text>
    <input placeholder="输入城市"  class='input-c' bindinput="getsuggest" value="{{backfill}}" />
    </view>
    <!-- 搜索 -->
    <view wx:for="{{suggestion}}" wx:key="index" class="{{showview?'hidden':'view-center'}}">
        <!--绑定回填事件-->
        <view >
        <!--根据需求渲染相应数据-->
        <!--渲染地址title-->
        <view class='item-title'  bindtap="backfill" id="{{index}}">{{item.title}}</view>
        <!--渲染详细地址-->
        <view class='item-details'>{{item.addr}}</view>
        </view>
        </view>
    <map
    id="ofoMap"
    longitude="{{longitude}}" latitude="{{latitude}}" markers="{{markers}}" 
    scale="{{scale}}"
    covers="{{covers}}" show-location
      class="{{showview?'map-c':'hidden'}}"
        bindregionchange="bindregionchange"
        controls="{{controls}}"
      bindcontroltap='bindcontroltap'
    >
    </map>
    </view>

    可以根据自己的需求画布局,这里就不贴出wxss样式文件了
     

    3. map.js

    const app = getApp()
    var QQMapWX = require('../../utils/qqmap-wx-jssdk.js')
    var qqmapsdk;
    // 实例化API核心类
    var qqmapsdk = new QQMapWX({
        key: '开发密钥(key)' // 必填
    });

    关于jar包,我这里用的是腾讯地图的,可以去官网下

    jar包下载地址:https://lbs.qq.com/qqmap_wx_jssdk/index.html
     

    获取当前位置:

      onLoad: function () {
        qqmapsdk = new QQMapWX({
          key: 'CLTBZ-3GVWD-LZY4D-HCY2K-RK3EE-UDBWF' //这里自己的key秘钥进行填充
        });
        var that = this
        wx.showLoading({
          title: "定位中",
          mask: true
        })
    
        wx.getSystemInfo({
          success: (res) => {
            this.setData({
               controls: [
                {
                  id: 1,
                  iconPath: '/images/marker.png',   //  大头针图片
                  position: {
                    left: res.windowWidth / 2 - 11,
                    top: res.windowHeight / 2 - 70,
                    width: 26,
                    height: 45
                  },
    
                  clickable: true
                },
                {
                  id: 2,
                  iconPath: '/images/location.png', // 左下角定位图片
                  position: {
                    left: 20,
                    top: res.windowHeight - 100,
                    width: 40,
                    height: 40
                  },
                  clickable: true
                },
              ]
            })
          }
        })
        wx.getLocation({
          type: 'wgs84',
          //定位成功,更新定位结果
          success: function (res) {
          
            var latitude = res.latitude
            var longitude = res.longitude
            var speed = res.speed
            var accuracy = res.accuracy
            //经纬度转化为地址
            that.getLocal(latitude, longitude)
            that.setData({
              longitude: longitude,
              latitude: latitude,
              speed: speed,
              accuracy: accuracy
            })
        
          },
          //定位失败回调
          fail: function () {
            wx.showToast({
              title: "定位失败",
              icon: "none"
            })
          },
    
          complete: function () {
            //隐藏定位中信息进度
            wx.hideLoading()
          }
    
        })
       
      }

    经纬度转换为地址:

     getLocal: function (latitude, longitude) {
        let vm = this;
        qqmapsdk.reverseGeocoder({
          location: {
            latitude: latitude,
            longitude: longitude
          },
          success: function (res) {
            console.log(JSON.stringify(res));
            let province = res.result.ad_info.province
            let city = res.result.ad_info.city
            let district = res.result.ad_info.district
            vm.setData({
              province: province,//省
              city: city,//市
              district: district,//区
        
            })
    
          },
          fail: function (res) {
            console.log(res);
          },
          complete: function (res) {
            // console.log(res);
          }
        });
      }

    实现大头针移动选点

      bindregionchange: function (e) {
        var that = this
        if (e.type == "begin") {
          console.log("begin");
        } else if (e.type == "end") {
          var mapCtx = wx.createMapContext("ofoMap")
          mapCtx.getCenterLocation({
            success: function (res) {
              var latitude = res.latitude
              var longitude = res.longitude
              that.getLocal(latitude, longitude)
            }
          }) 
        }
      }

    点击icon回归当前位置

      bindcontroltap: function (e) {
        switch (e.controlId) {
          // 当点击图标location.png的图标,则触发事件movetoPositioon()
          case 2:
              this.movetoPosition();
            break;
         
         }
      }

    移动定点

      movetoPosition: function () {
        this.mapCtx.moveToLocation();
      },
      onShow: function () {
        var that=this;
        console.log("onShow");
        that.mapCtx = wx.createMapContext("ofoMap");
        //this.movetoPosition();
        that.mapCtx.getCenterLocation({
          success: function (res) {
            var latitude = res.latitude
            var longitude = res.longitude
            that.getLocal(latitude, longitude)
          }
        }) 
      },

    ok,以上就是实现功能的核心代码块了
    关于搜索关键字功能的实现,我会在下个博客中给出


     

    展开全文
  • 这篇文章主要是对百度地图进行定位当前的位置,同时在当前位置设置圆形覆盖物,后面会实现附近餐馆查找功能。文章比较基础,包括申请API Key、配置环境、官方文档介绍、使用BDLocationListener实现定位监听方法等,...
  • FastMM 定位内存泄露的代码位置

    千次阅读 2011-03-17 17:09:00
    FastMM 定位内存泄露的代码位置
  • 基于GPS的定位方式是利用手机上的GPS定位模块将自己位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力,但是精度很...
  • HTML5地理位置定位 lbs

    千次阅读 2015-08-09 21:29:29
    HTML5 地理位置定位 LBS Geolocation
  • 1. 增加一步鼠标操作:鼠标移动所需要定位元素的位置,悬停之后,再找元素 关键词:ActionChains,鼠标操作对应的方法集合,详细内容可以在selenium介绍文档中找~ 推荐博文:...
  • 本项目的出发点就是针对如何解决位置的实时共享问题,使得人们组队外出游玩时的安全性得到保障,还有让每个家庭成员之间可以随时随地地查看其他成员的位置,特别是让老人、小孩的安全得到家人的实时监护。...
  • 发现微信的定位逻辑是:如果定位之前先选择了带有GPS信息的照片,那么定位信息是先从照片引用的,如果发现没信息再从GPS或基站定位。   首先看看效果:   定位信息显示“吉尔吉斯斯坦”。可是叶子竹还在学校用功...
  • HTML5 地理位置定位 API 接口开发

    万次阅读 2013-09-10 10:40:37
    地理位置定位的几种方式:IP地址,GPS,Wifi,GSM/CDMA 地理位置获取流程: ...4、浏览器相关信息发送一个信任的位置服务器,服务器返回具体的地理位置。 HTML5地理地位的实现: 1. 实现基于
  • 邓德隆:定位

    千次阅读 2016-12-06 21:38:37
    一、定位的含义定位的多重含义:空间/物理上的,精神上的,世间上的空间定位:经纬度、横坐标和纵坐标、产业链+发展阶段企业定位/品牌定位:为自己在市场中有个位置(行业、领域、环节、方向等)明确自己潜在的价值...
  • 【必看】CSS如何调整一个元素的任意位置-外边距-浮动-定位调整一个元素的任意位置方法1:外边距-margin方法2:浮动-float方法3:相对定位-relative方法4:绝对定位-absolute方法5:固定定位-fixed总结 调整一个元素...
  • 的浏览器中打开可以定位,在我自己的webview却不能  主要代码如下://启用数据库 webSettings.setDatabaseEnabled(true); String dir = this.getApplicationContext().getDir("database", Context....
  • 集成百度地图SDK并获取当前位置和目标位置,更换大头针的样式,自定义大头针上方的气泡弹出框,配置提示本应用程序是否获取当前位置定位服务提示框
  • position定位详解

    万次阅读 2019-08-10 11:41:05
    定位 position position的值 1.static 定位默认值,也就是没有定位,是文档流 2.relative 相对定位,...进行定位后,脱离文档流,根据自身未做定位前的位置为基准进行位置偏移,此时left的值指偏移后左边离原...
  • gtest:http://code.google.com/p/googletest/,可以下载最新...下载后,可以参考gtest-1.6.0\make\Makefile写自己的Makefile。 程序内存的信息(/proc/self/smaps): VMSIZE: 15316 KB RSS: 2560 KB total  1152
  • 声源定位

    千次阅读 2019-11-06 13:08:35
    即使看不那里有什么,我们也可以根据声音大致判断出我们周围有什么。尝试在电子设备中复制相同的系统可以证明是一种有价值的方式来感知机器人、安全和一系列其他应用的环境。我们构造了一个三角形排列的麦克风来...
  • CSS 提供了三种基本的定位机制:普通流、浮动和定位;通过这三种方式可实现页面的排版布局。 普通流 普通流中元素的位置由...通过定位可以让元素相对于其正常位置进行偏移出现在位置,或者相对于父元素、另一个元
  • 【UWB 定位】高精度定位

    万次阅读 2018-07-17 10:58:32
    所以在室内定位主要采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内位置定位体系,从而实现人员、物体等在室内空间中的位置监控。除通讯网络的蜂窝定位技术外,常见的室内无线定位技术还有:Wi...
  • 一、前言:很多app及网站会用到定位这个功能,除了客户端的sdk集成之外,服务端也有解决方案! 二、网上各种方法: 1.新浪接口根据ip查询所在区域信息(经过测试,不能使用) 2.淘宝接口根据ip查询所在区域信息...
  • APIcould新建模板项目,并引用bMap模块定位 首先,我使用的是APICloud Studio 2,就是目前为止(2019.04.23)开发工具的第一个 [上面的那个软件的下载地址]https://www.apicloud.com/devtools 打开后是需要登录的,...
  • 百度地图定位到了非洲的问题

    千次阅读 2018-07-31 09:20:39
    第二天去单位上班,一打开,发现居然定位到了非洲西海岸。 晚上回到家,调了一下,发现BDLocation的getLocType返回值是一直是167。 不小心打开wifi,再定位又可以定到位了。 百思不得其解,又详细看了看...
  • 室内定位简介

    千次阅读 2018-05-03 18:15:36
    室内定位定义: 室内定位是指在室内环境中实现位置定位,主要采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内位置定位体系,从而实现人员、物体等在室内空间中的位置监控。室内定位需求: 在室外环境...
  • 【已解决】【奇葩5】iOS 定位到香港

    千次阅读 2015-02-02 09:56:56
    xcode中模拟定位
  • 计算机专业学生如何给自己定位

    千次阅读 2007-01-18 16:08:00
    和我一样,很多学习计算机的学生在大学都有个困惑,到底要学什么... 印度的软件公司从TCS,Infosys, Wipro都是做IT service或者说是软件外包为主,国内有的人不屑于软件外包,认为没有技术含量,如果你是个牛人,
  • 创建了新的conda虚拟环境,然后开始用pip安装相关库,紧接着报错,提示pip版本过低——经调试发现,并非该虚拟环境的pip版本低,其实是因为pip定位到的是全局默认Python的pip了,而全局默认的Python版本是Python2.7...
  • UWB定位技术

    万次阅读 多人点赞 2017-08-10 11:01:00
    所以在室内定位主要采用无线通讯、基站定位、惯导定位等多种技术集成形成一套室内位置定位体系,从而实现人员、物体等在室内空间中的位置监控。除通讯网络的蜂窝定位技术外,常见的室内无线定位技术还有:Wi-Fi、...
  • 原地址:... 导读]现代智能手机的一个重要功能就是定位。与笨重的台式电脑、笔记本电脑、个人导航设备和平板电脑不同,智能手机可以更好地将定位功能和其他数据相结合,从而实现新的服务。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,328
精华内容 66,131
关键字:

怎么将自己定位到别的位置