精华内容
下载资源
问答
  • 本小菜刚开始学习HTML5,现在对其中的Geolocation颇感兴趣,结合Google Map的API实现基本的地图定位功能主要是由以下几个步骤:获取当前地理位置、调用Google Map API获取当前位置信息
  • google 定位

    千次阅读 2013-02-22 16:08:28
    网上摘的,可以用,这里仅... * 通过GPS或网络获取地理位置 */ public class LocationUtils { private FragmentActivity mFragmentActivity; private Handler mHandler; private LocationManager mLocationManag

    网上摘的,可以用,这里仅作记录。

    1.工具类代码如下:

    /**
     * 通过GPS或网络获取地理位置
     */
    public class LocationUtils {
    
    	private FragmentActivity mFragmentActivity;
    
    	private Handler mHandler;
    	private LocationManager mLocationManager;
    
    	public static final int UPDATE_ADDRESS = 1;
    	public static final int UPDATE_LATLNG = 2;
    
    	private static final int TEN_SECONDS = 10000;
    	private static final int TEN_METERS = 10;
    	private static final int TWO_MINUTES = 1000 * 60 * 2;
    
    	private static LocationUtils mLocationUtils;
    
    	public static LocationUtils getInstance(FragmentActivity fragmentActivity, Handler handler) {
    		return mLocationUtils == null ? new LocationUtils(fragmentActivity, handler) : mLocationUtils;
    	}
    
    	private LocationUtils(FragmentActivity fragmentActivity, Handler handler) {
    		this.mHandler = handler;
    		this.mFragmentActivity = fragmentActivity;
    
    		mLocationManager = (LocationManager) mFragmentActivity.getSystemService(Context.LOCATION_SERVICE);
    
    	}
    
    	private LocationUtils() {
    	}
    
    	// Method to launch Settings
    	private void enableLocationSettings() {
    		Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
    		mFragmentActivity.startActivity(settingsIntent);
    	}
    
    	// Stop receiving location updates whenever the Activity becomes invisible.
    	public void stop() {
    		mLocationManager.removeUpdates(listener);
    	}
    
    	public void setup() {
    
    		Location networkLocation = null;
    
    		mLocationManager.removeUpdates(listener);
    
    		networkLocation = requestUpdatesFromProvider(LocationManager.NETWORK_PROVIDER, R.string.common_not_open_google_location_service);
    
    		if (networkLocation != null) {
    			updateUILocation(networkLocation);
    		}
    
    	}
    
    	private Location requestUpdatesFromProvider(final String provider, final int errorResId) {
    		Location location = null;
    		if (mLocationManager.isProviderEnabled(provider)) {
    			mLocationManager.requestLocationUpdates(provider, TEN_SECONDS, TEN_METERS, listener);
    			location = mLocationManager.getLastKnownLocation(provider);
    		} else {
    			new EnableGpsDialogFragment().show(mFragmentActivity.getSupportFragmentManager(), mFragmentActivity.getResources().getString(errorResId));
    		}
    		return location;
    	}
    
    	private void doReverseGeocoding(Location location) {
    		(new ReverseGeocodingTask(mFragmentActivity)).execute(new Location[] { location });
    	}
    
    	private void updateUILocation(Location location) {
    
    		Message.obtain(mHandler, UPDATE_LATLNG, location).sendToTarget();
    
    		doReverseGeocoding(location);
    	}
    
    	private final LocationListener listener = new LocationListener() {
    
    		@Override
    		public void onLocationChanged(Location location) {
    			updateUILocation(location);
    		}
    
    		@Override
    		public void onProviderDisabled(String provider) {
    		}
    
    		@Override
    		public void onProviderEnabled(String provider) {
    		}
    
    		@Override
    		public void onStatusChanged(String provider, int status, Bundle extras) {
    		}
    	};
    
    	protected Location getBetterLocation(Location newLocation, Location currentBestLocation) {
    		if (currentBestLocation == null) {
    			return newLocation;
    		}
    
    		long timeDelta = newLocation.getTime() - currentBestLocation.getTime();
    		boolean isSignificantlyNewer = timeDelta > TWO_MINUTES;
    		boolean isSignificantlyOlder = timeDelta < -TWO_MINUTES;
    		boolean isNewer = timeDelta > 0;
    
    		if (isSignificantlyNewer) {
    			return newLocation;
    		} else if (isSignificantlyOlder) {
    			return currentBestLocation;
    		}
    
    		int accuracyDelta = (int) (newLocation.getAccuracy() - currentBestLocation.getAccuracy());
    		boolean isLessAccurate = accuracyDelta > 0;
    		boolean isMoreAccurate = accuracyDelta < 0;
    		boolean isSignificantlyLessAccurate = accuracyDelta > 200;
    
    		boolean isFromSameProvider = isSameProvider(newLocation.getProvider(), currentBestLocation.getProvider());
    
    		if (isMoreAccurate) {
    			return newLocation;
    		} else if (isNewer && !isLessAccurate) {
    			return newLocation;
    		} else if (isNewer && !isSignificantlyLessAccurate && isFromSameProvider) {
    			return newLocation;
    		}
    		return currentBestLocation;
    	}
    
    	/** Checks whether two providers are the same */
    	private boolean isSameProvider(String provider1, String provider2) {
    		if (provider1 == null) {
    			return provider2 == null;
    		}
    		return provider1.equals(provider2);
    	}
    
    	private class ReverseGeocodingTask extends AsyncTask<Location, Void, Void> {
    		Context mContext;
    
    		public ReverseGeocodingTask(Context context) {
    			super();
    			mContext = context;
    		}
    
    		@Override
    		protected Void doInBackground(Location... params) {
    			Geocoder geocoder = new Geocoder(mContext, Locale.getDefault());
    
    			Location loc = params[0];
    			List<Address> addresses = null;
    			try {
    				addresses = geocoder.getFromLocation(loc.getLatitude(), loc.getLongitude(), 1);
    			} catch (IOException e) {
    				e.printStackTrace();
    				Message.obtain(mHandler, UPDATE_ADDRESS, e.toString()).sendToTarget();
    			}
    			if (addresses != null && addresses.size() > 0) {
    				Address address = addresses.get(0);
    				Message.obtain(mHandler, UPDATE_ADDRESS, address).sendToTarget();
    
    			}
    			return null;
    		}
    	}
    
    	/**
    	 * Dialog to prompt users to enable GPS on the device.
    	 */
    	private class EnableGpsDialogFragment extends DialogFragment {
    
    		@Override
    		public Dialog onCreateDialog(Bundle savedInstanceState) {
    			return new AlertDialog.Builder(getActivity()).setTitle(R.string.common_error).setMessage(R.string.common_not_open_google_location_service)
    					.setPositiveButton(R.string.common_open_google_location_service, new DialogInterface.OnClickListener() {// Enable
    								// GPS
    								@Override
    								public void onClick(DialogInterface dialog, int which) {
    									enableLocationSettings();
    								}
    							}).create();
    		}
    	}
    
    }

    2.使用实例:

    LocationUtils instance = LocationUtils.getInstance(activity, handler);
    instance.setup();
    	private Handler handler = new Handler() {
    
    		@Override
    		public void handleMessage(Message msg) {
    			switch (msg.what) {
    			case LocationUtils.UPDATE_ADDRESS:
    
    				if (msg.obj instanceof Address) {
    
    					Address address = (Address) msg.obj;
    
    					double longitude = address.getLongitude();
    					double latitude = address.getLatitude();
    
    				}
    				instance.stop();
    				break;
    			case LocationUtils.UPDATE_LATLNG:
    				instance.stop();
    				break;
    			}
    		}
    
    	};


    展开全文
  • 我使用的是AS2.2.2,首先翻墙注册google开发者帐号,准备获取API Key,网上有许多相关资料我就不再赘述,这里讲一个比较小白级的获取方法,可以减少许多输入 1.1. AS创建项目添加一个Google Map Activity 1.2 创建...

    自学android几个月,前几天粗略学习了下google地图集成,特地记录该文

    1.准备

    我使用的是AS2.2.2,首先翻墙注册google开发者帐号,准备获取API Key,网上有许多相关资料我就不再赘述,这里讲一个比较小白级的获取方法,可以减少许多输入
    1.1. AS创建项目添加一个Google Map Activity
    1.2 创建成功后找到google_maps_api.xml,便可看到下图内容,根据我初中英文水平,复制这行到浏览器地址栏,跟着它走就行了,记得翻墙
    1.3 最后你会看到已经帮你创建好了密钥,复制到项目中
    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR_KEY_HERE</string>

    替代即可.



    1.4 在项目中添加Google Services依赖,我这里选择的是在build.gradle中添加地图服务和位置信息服务

    compile 'com.google.android.gms:play-services:9.8.0' 
    compile 'com.google.android.gms:play-services-location:9.8.0'


    2.代码部分

    public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
       
    @Override
       
    protected void onCreate(Bundle savedInstanceState) {
           
    super.onCreate(savedInstanceState);
            setContentView
    (R.layout.activity_maps);
           
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                   
    .findFragmentById(R.id.map);
            mapFragment
    .getMapAsync(this);
       
    }

       
    @Override
       
    public void onMapReady(GoogleMap map) {
           
    // Add a marker in Sydney, Australia, and move the camera.
           
    LatLng sydney = new LatLng(-34, 151);
            map
    .addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
            map
    .moveCamera(CameraUpdateFactory.newLatLng(sydney));
       
    }
    }
    在创建好的MapsActivity中,已经有以上代码,此时运行项目已经可以看到地图界面并定位到了悉尼
    现在添加地图定位层,由于地图准备就绪后会调用onMapReady(),我们就在准备就绪后显示定位层

        /**
         * 如果取得了权限,显示地图定位层
         */
        private void enableMyLocation() {
            if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
                    != PackageManager.PERMISSION_GRANTED) {
                // Permission to access the location is missing.
                PermissionUtils.requestPermission(this, LOCATION_PERMISSION_REQUEST_CODE,
                        android.Manifest.permission.ACCESS_FINE_LOCATION, true);
            } else if (mMap != null) {
                // Access to the location has been granted to the app.
                mMap.setMyLocationEnabled(true);
            }
        }

    那么,显示出定位层后,如何获取到位置信息呢,在GoogleMap这个类中没法获取到信息的,得通过Google Play services location APIs 来获取.
    这里我推荐一份中文的安卓文档:http://hukai.me/android-training-course-in-chinese/location/index.html  ,有需要的可以了解到更多关于谷歌位置信息服务知识
    我们使用APIs中的fused location provider来获取设备的最后可知位置,用getLastLocation()方法为设备的位置构造一个单一请求
    onConnected()方法会在Google API Client准备好时调用,可以在这里取得地理位置的经度和纬度坐标

    public class MainActivity extends ActionBarActivity implements
            ConnectionCallbacks, OnConnectionFailedListener {
        ...
        @Override
        public void onConnected(Bundle connectionHint) {
            mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
                    mGoogleApiClient);
            if (mLastLocation != null) {
                mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude()));
                mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude()));
            }
        }
    }


    然而有经纬度是不够的,还需要将经纬度转成地理列表,这里使用Geocoder 类的 getFromLocation() 方法接收一个经度和纬度,返回一个地址列表,不过这个操作可能会耗时,所以启动一个IntentService 处理,这里定义一个继承 IntentService 的类 FetchAddressIntentService,这个类是地址查找服务.这个类代码随后在demo中给,你也可以参考api摸索.
    这里讲讲如何启动FetchAddressIntentService
    public class MainActivity extends ActionBarActivity implements
            ConnectionCallbacks, OnConnectionFailedListener {
    
        protected Location mLastLocation;
        private AddressResultReceiver mResultReceiver;
        ...
    
        protected void startIntentService() {
            Intent intent = new Intent(this, FetchAddressIntentService.class);
            intent.putExtra(Constants.RECEIVER, mResultReceiver);     //所需参数一,接收处理结果
            intent.putExtra(Constants.LOCATION_DATA_EXTRA, mLastLocation);	//所需参数二
            startService(intent);
        }
    }

    必须在 Google Play services 连接稳定之后启动 intent 服务,所以会在刚刚的onConnected()调用startIntentService()
    public class MainActivity extends ActionBarActivity implements
            ConnectionCallbacks, OnConnectionFailedListener {
        ...
        @Override
        public void onConnected(Bundle connectionHint) {
            // Gets the best and most recent location currently available,
            // which may be null in rare cases when a location is not available.
            mLastLocation = LocationServices.FusedLocationApi.getLastLocation(	//所需参数二
    
                    mGoogleApiClient);
    
            if (mLastLocation != null) {
                // Determine whether a Geocoder is available.
                if (!Geocoder.isPresent()) {
                    Toast.makeText(this, R.string.no_geocoder_available,
                            Toast.LENGTH_LONG).show();
                    return;
                }
    
                if (mAddressRequested) {
                    startIntentService();
                }
            }
        }
    }

    还缺少参数一,这里通过重写 onReceiveResult() 方法来处理发送给接收端的结果

    class AddressResultReceiver extends ResultReceiver {
            public AddressResultReceiver(Handler handler) {
                super(handler);
            }
    
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
    
                // Display the address string
                // or an error message sent from the intent service.
                mAddressOutput = resultData.getString(Constants.RESULT_DATA_KEY);
                displayAddressOutput();
    
                // Show a toast message if an address was found.
                if (resultCode == Constants.SUCCESS_RESULT) {
                    showToast(getString(R.string.address_found));
                }
    
            }
        }

    实例化就能使用了
            mResultReceiver = new AddressResultReceiver(new Handler());

    结束,第一次写,求轻喷,附上Demo

    https://github.com/Linyaodai/MyLocationDemo


    展开全文
  • react.js获取定位Spreadsheets are popular since they act as a database that’s easy to modify for non-developers. Anyone with a laptop and internet connection can use spreadsheets and insert useful in...

    react.js获取定位

    Spreadsheets are popular since they act as a database that’s easy to modify for non-developers. Anyone with a laptop and internet connection can use spreadsheets and insert useful information.

    电子表格很受欢迎,因为它们充当的数据库对于非开发人员来说很容易修改。 拥有笔记本电脑和互联网连接的任何人都可以使用电子表格并插入有用的信息。

    As developers, we’re constantly searching for ways to improve our everyday workflow. Here’s a way to save time by fetching data straight from Google sheets with React and tabletop.js.

    作为开发人员,我们一直在寻找改善日常工作流程的方法。 这是一种通过使用Reacttabletop.js直接从Google表格中获取数据来节省时间的方法。

    We’re going to use tabletop since it easily integrates with Google Spreadsheets. The library is used for getting JSON from a Google Spreadsheet without jumping through a thousand hoops.

    我们将使用桌面,因为它可以轻松地与Google Spreadsheets集成。 该库用于从Google Spreadsheet获取JSON,而无需跳过上千圈。

    入门 (Getting started)

    Step One: make a Google Spreadsheet and click “Publish to Web.”

    第一步:制作一个Google电子表格 ,然后点击“发布到网络”。

    Step Two: Install the tabletop library.

    第二步:安装桌面库。

    yarn add tabletop

    Step Three: Write the React component that fetches the data from Google sheets.

    第三步 :编写React组件,以从Google表格中获取数据。

    import React, { useEffect, useState, Fragment } from "react";
    import Tabletop from "tabletop";
    
    
    export default function App() {
      const [data, setData] = useState([]);
    
    
      useEffect(() => {
        Tabletop.init({
          key: "1TK1Qj6kfA90KbmFAdnIOtKUttpJUhZoZuOPy925c6nQ",
          simpleSheet: true
        })
          .then((data) => setData(data))
          .catch((err) => console.warn(err));
      }, []);
    
    
      return (
        <>
          <h1>data from google sheets</h1>
           // render data here
        </>
      );
    }

    Note: we’re using React hooks — if you’re new to them, check out this article where I explained React hooks in depth.

    注意:我们正在使用React钩子-如果您是不熟悉它们, 请查看本文 ,在其中我深入解释了React钩子。

    Here’s what happens inside the React component above;

    这是上面的React组件内部发生的情况;

    • We’re initializing the Tabletop library inside the useEffect hook. The init function takes an object as an argument. This is where we place the information about our Google sheets. Notice the key prop.

      我们正在useEffect挂钩中初始化Tabletop库。 init函数将对象作为参数。 我们在这里放置有关Google表格的信息。 注意key道具。

    Image for post
    key prop key prop
    • Once the tabletop library is done initializing, it’s going to fetch the data from google spreadsheets. If the query is successful, we store the retrieved data inside the react hook which is called data.

      桌面库完成初始化后,它将从Google电子表格中获取数据。 如果查询成功,我们将检索到的数据存储在称为data的react挂钩中。

    渲染数据 (Rendering data)

    Rendering the data on the screen is quite straight-forward. We’re going to map over the array of data.

    在屏幕上渲染数据非常简单。 我们将映射数据数组。

    return (
      <>
        <h1>data from google sheets</h1>
        <ul>
          {data.map((item, i) => (
            <Fragment key={i}>
              <li>URL -- {item.URL}</li>
              <li>Email - {item.email}</li>
              <li>Token - {item.token}</li>
              <br />
            </Fragment>
          ))}
        </ul>
      </>
    );

    这是结果 (Here’s the result)

    Image for post

    Well done! You did it.

    做得好! 你做到了。

    这是一些使用tabletop.js从Google表格中获取数据的陷阱 (Here are a few gotchas with fetching data from google sheets with tabletop.js)

    • All columns must be named in the first row and may not contain any strange characters (%, $, &).

      所有列都必须在第一行中命名,并且不能包含任何奇怪的字符(%,$和&)。
    • Google assumes an empty row is the end of the data and doesn’t return any rows thereafter.

      Google假定数据的末尾为空行,此后不返回任何行。
    • NOTE: If your share URL has a /d/e in it, try refreshing the page to see if it goes away. If it doesn't, try this.

      注意:如果您的共享URL中包含/d/e ,请尝试刷新页面以查看它是否消失。 如果不是,请尝试此

    • If you want to deal with multiple sheets you can get rid of the simpleSheet property.

      如果要处理多个工作表,则可以摆脱simpleSheet属性。

    • Check out the tabletop documentation for a deeper dive.

      查看桌面文档 ,以进行更深入的了解。

    这是完整的React组件 (Here’s the full React component)

    import React, { useEffect, useState, Fragment } from "react";
    import Tabletop from "tabletop";
    import "./styles.css";
    
    
    export default function App() {
      const [data, setData] = useState([]);
    
    
      useEffect(() => {
        Tabletop.init({
          key: "1TK1Qj6kfA90KbmFAdnIOtKUttpJUhZoZuOPy925c6nQ",
          simpleSheet: true
        })
          .then((data) => setData(data))
          .catch((err) => console.warn(err));
      }, []);
    
    
      return (
        <>
          <h1>data from google sheets</h1>
          <ul>
            {data.map((item, i) => (
              <Fragment key={i}>
                <li>URL -- {item.URL}</li>
                <li>Email - {item.email}</li>
                <li>Token - {item.token}</li>
                <br />
              </Fragment>
            ))}
          </ul>
        </>
      );
    }

    In case you’re feeling curious, here’s the interactive demo. Try it out!

    如果您感到好奇,这是交互式演示。 试试看!

    Thanks for reading, happy coding!

    感谢您的阅读,编码愉快!

    翻译自: https://medium.com/vowel-magic/how-to-fetch-data-from-google-sheets-with-react-and-tabletop-js-ca0e9d2ab34b

    react.js获取定位

    展开全文
  • 本小菜刚开始学习HTML5,现在对其中的Geolocation颇感兴趣,结合Google Map的API实现基本的地图定位功能。 1.获取当前地理位置  调用方法 void getCurrentPosition(onSuccess, onError, options);即可。  其中...

     

      本小菜刚开始学习HTML5,现在对其中的Geolocation颇感兴趣,结合Google Map的API实现基本的地图定位功能。

    1.获取当前地理位置

      调用方法 void getCurrentPosition(onSuccess, onError, options);即可。

      其中onSuccess是获取当前位置信息成功时执行的回调函数,onError是获取当前位置信息失败时所执行的回调函数,options是一些可选熟悉列表。其中第二和第三个参数为可选属性。

      在onSuccess回调函数中,用到了参数position,代表一个具体的position对象,表示当前位置。其具有如下属性:

    • latitude:当前地理位置的纬度
    • longitude:当前地理位置的经度。
    • altitude:当前位置的海拔高度(不能获取时为null)。
    • accuracy:获取到的纬度和经度的精度(以米为单位)。
    • altitudeAccurancy:获取到的海拔高度的经度(以米为单位)。
    • heading:设备的前进方向。用面朝正被方向的顺时针旋转角度来表示(不能获取时为null)。
    • speed:设备的前进速度(以米/秒为单位,不能获取时为null)。
    • timestamp:获取地理位置信息时的时间。

      在onError回调函数中,用到了error参数。其具有如下属性:

    • code:错误代码,有如下值。
    1. 用户拒绝了位置服务(属性值为1);
    2. 获取不到位置信息(属性值为2);
    3. 获取信息超时错误(属性值为3)。
    • message:字符串,包含了具体的错误信息。

      在options参数中,可选属性如下:

    • enableHighAccuracy:是否要求高精度的地理位置信息。
    • timeout:设置超时时间(单位为毫秒)。
    • maximumAge:对地理位置信息进行缓存的有效时间(单位为毫秒)。

      其中注意要写上如下代码,判断浏览器是否支持HTML5获取地理位置信息,以兼容较早不支持的浏览器。

    if (navigator.geolocation) {
        //获取当前地理位置信息 
        navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
     } else {
          alert("你的浏览器不支持HTML5来获取地理位置信息。");
    }

     2.调用Google Map API获取当前位置信息

      首先,需要在页面中引用Google Map API的脚本文件,导入方法如下所示。

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

      其次,设定地图参数,设定方法如下所示。

    //指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标
    var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
    var myOptions = {
       zoom: 14,    //设定放大倍数
       center: latlng,  //将地图中心点设定为指定的坐标点
       mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型
    };

     

     

      最后,创建地图,并在页面中显示,创建方法如下所示。

    //创建地图,并在页面map中显示
    var map = new google.maps.Map(document.getElementById("map"), myOptions);

     

      最后的最后,献上本次示例所有代码。代码如下所示。

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>获取当前位置并显示在google地图上</title>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript">
            function init() {
                if (navigator.geolocation) {
                    //获取当前地理位置
                    navigator.geolocation.getCurrentPosition(function (position) {
                        var coords = position.coords;
                        //console.log(position);
                        //指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标
                        var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
                        var myOptions = {
                            zoom: 14,    //设定放大倍数
                            center: latlng,  //将地图中心点设定为指定的坐标点
                            mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型
                        };
                        //创建地图,并在页面map中显示
                        var map = new google.maps.Map(document.getElementById("map"), myOptions);
                        //在地图上创建标记
                        var marker = new google.maps.Marker({
                            position: latlng,    //将前面设定的坐标标注出来
                            map: map //将该标注设置在刚才创建的map中
                        });
                        //标注提示窗口
                        var infoWindow = new google.maps.InfoWindow({
                            content: "当前位置:<br/>经度:" + latlng.lat() + "<br/>维度:" + latlng.lng()   //提示窗体内的提示信息
                        });
                        //打开提示窗口
                        infoWindow.open(map, marker);
                    },
                    function (error) {
                        //处理错误
                        switch (error.code) {
                            case 1:
                                alert("位置服务被拒绝。");
                                break;
                            case 2:
                                alert("暂时获取不到位置信息。");
                                break;
                            case 3:
                                alert("获取信息超时。");
                                break;
                            default:
                                alert("未知错误。");
                                break;
                        }
                    });
                } else {
                    alert("你的浏览器不支持HTML5来获取地理位置信息。");
                }
            }
        </script>
    </head>
    <body onload="init()">
        <div id="map" style="width: 800px; height: 600px"></div>
    </body>
    </html>

      

    作   者:D.J. Chan 
    出   处:http://www.cnblogs.com/djchan/
    欢迎任何形式的转载,但请务必注明出处。

     

    转载于:https://www.cnblogs.com/djchan/archive/2012/10/28/HTML5.html

    展开全文
  • 我使用的是AS2.2.2,首先FQ注册google开发者帐号,准备获取API Key,网上有许多相关资料我就不再赘述,这里讲一个比较小白级的获取方法,可以减少许多输入 1.1. AS创建项目添加一个Google Map Activity 1.2 创建...
  • 重新定位地图,并获取地址信息     Java代码 import  android.view.MotionEvent;  import  com.google.android.maps.GeoPoint;  import  com.google.android.maps.MapView;  import ...
  • 最近有个需求,关于国外(主要是美国)的当前位置定位和指定地址并且显示地图。故采用了google map 的 api完成(肯定需要...主要用到两个api,一个是geolocation对象的getCurrentPosition()方法获取位置(目前找到的...
  • 关于Android中Google定位

    千次阅读 2017-07-13 09:46:52
    GPS全球定位系统定位的工作原理是基于手机内置的GPS硬件直接和卫星交互来获取当前的经纬度信息,这种定位方式精确度非常高,但缺点是只能在室外使用,室内基本无法接收到卫星星号。 2.网络定位 Network Provider ...
  • HTML5为navigator新增了一个geolocation属性,这个属性是一个...1、请求获取地理位置 getCurrentPosition(onSuccess,onError,options)。 onSuccess:成功获取地理位置是触发的回调函数。 onError:获取失败
  • Google Maps API 网络服务 官网地址 : https://developers.google.com/maps/documentation/webservices/?hl=zh-cn ...1、根据地址获取经纬度 http://maps.google.com/maps/api/geocode/json?address=北京&lang
  • 一、首先普及一下手机基站信息中相关的专业词汇:通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:MCC,Mobile Country Code,移动国家代码(中国的为460);MNC,Mobile Network Code,移动网络号码...
  • extends:... Google Maps API 网络服务 官网地址 : https://developers.google.com/maps/documentation/webservices/?hl=zh-cn 其实就是一些接口,供我们调用,如: 1、根据地址获...
  • 定位一般分为三种发方案:即GPS定位Google网络定位以及基站定位 最简单的手机定位方式当然是通过GPS模块(现在大部分的智能机应该都有了)。GPS方式准确度是最高的,但是它的缺点也非常明显:1,比较耗电;2,绝...
  • 因为是要国外定外 所以下载这个GooglePlay渠道包 然后解压 获取里面的jar包(其他定位配置参考高德地图定位文档) 解压后将放到工程的libs目录下 定位代码: //声明AMapLocationClient类对象 public ...
  • 定位一般分为三种发方案:即GPS定位Google网络定位以及基站定位   最简单的手机定位方式当然是通过GPS模块(现在大部分的智能机应该都有了)。GPS方式准确度是最高的,但是它的缺点也非常明显:1,比较耗电;2...
  • C++ 6.0根据域名获取IP地址,获取域名解析信息,程序功能单一,除了获取IP功能外,没有其它功能。注意:测试时请确保域名正确且已经是经过解析的域名,否则程序假死后退出。下面是相关的代码仅供参考: image ...
  • 2、获取API密匙(前提是已经在GoogleMapSDK中创建好自己的应用) 3、配置plist文件搭建定位环境 4、调用代理方法实现需求 tips:pod ‘GoogleMaps’、pod ‘GooglePlaces’、pod ‘GooglePlacePic
  • 申请Google Maps API 时需要验证MD5指纹证书,但是通过keytool -list -keystore “C:\Documents and Settings\tony\.android\debug.keystore” 命令得到是是SHA1类型的,不能通过验证。解决办法就是: 进入cmd后...
  • 根据地址定位是对根据GPS信息定位的一个改进,我们可以直接输入地址,获取到自己想要定位的地方,这更符合用户的需求。因为Google Map的地图定位是根据经纬度来完成的,所以我们需要根据地址信息,把地址解析成...
  • HTML5获取地理位置定位信息

    千次阅读 2015-10-08 17:32:48
    演示:HTML5获取地理位置定位信息 .demo{width:560px; margin:60px auto 10px auto} .geo{margin-top:20px} .demo p{line-height:32px; font-size:16px} .demo p span,#baidu_geo,#google_geo{font-weight:bold...
  • 为了在程序中调用GoogleMap,必须先获取GoogleMap API的key,步骤如下 1.单击Eclipse主菜单Window,选择Preferences 选择 Android---Build 查看default debug keystore的存放路径   2.在命令行中输入keytool -...
  • XPath定位——基于Google Chrome和Firefox

    千次阅读 2017-11-02 22:58:56
    XPath定位,如何获取元素XPath——基于Google Chrome、Firefox
  • 基于位置的服务简称 LBS,主要的工作原理就是利用无线电通讯网络或 GPS 等定位方式来确定出移动设备所在的位置. 定位过程如下:1.LocationManager的使用 要想使用 LocationManager就必须要先获取到它的实例, 我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460
精华内容 184
关键字:

获取google定位