php 根据经纬度 获得 城市名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 根据经纬度 获得 城市名相关的知识,希望对你有一定的参考价值。

php代码,如何根据经纬度获得城市名。
高分送上!谢谢大家,(已知经纬度)必须是PHP的代码。
获得的城市名格式为:北京

嘿嘿 这分数你应该要给我了  我收藏的好玩意终于可以拿出来分享了

http://api.map.baidu.com/geocoder?location=30.990998,103.645966&output=xml&key=28bcdd84fae25699606ffad27f8da77b

打开这个网址你就会发现奇迹,不要用360浏览器打开呢   360垃圾  打开的时候总是崩溃掉

中间的location表示坐标   格式:维度,经度

参考技术A 这种功能,只能调用第三方的接口了,百度地图API就有这个接口addressComponents,逆地址解析,参考方法如下:
<GeocoderSearchResponse>

<status>OK</status>

<result>

<location>

<lat>38.990998</lat>

<lng>103.645966</lng>

</location>

<formatted_address>甘肃省武威市民勤县</formatted_address>

<business/>

<addressComponent>

<streetNumber/>

<street/>

<district>民勤县</district>

<city>武威市</city>

<province>甘肃省</province>

</addressComponent>

<cityCode>118</cityCode>

</result>

</GeocoderSearchResponse>
具体接口地址如下:
http://api.map.baidu.com/geocoder?location=38.990998,103.645966&output=xml&key=28bcdd84fae25699606ffad27f8da77b
参考技术B 看看这里吧 http://developer.baidu.com/map/webservice-geocoding.htm 参考技术C 实现这种功能,你只能调用第三方的接口了,百度地图API就有这个接口addressComponents,逆地址解析,具体参考API 参考技术D 分真不高对于这个问题

通过经纬度获取城市名/地址(不需要三方包)

1:getLocation()方法筛选出最优获取经纬度的方法

2:MapThread线程通过将getLocation()获取的经纬度上传而获取城市名


public class PositionActivity extends BaseActivity implements IInit, IResponseHandler, View.OnClickListener 
    private TextView mLocationTV, mCategoryTV;//位置.种类
    private double latitude, longitude;//经纬度
    private String mapUriStr = "http://maps.google.cn/maps/api/geocode/json?latlng=0,1&sensor=true&language=zh-CN";
    private HttpResponse httpResponse = null;
    private HttpEntity httpEntity = null;
    private MapThread mapThread;
    private Handler handler;
    private String result;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_share_goods_edit);

        init();
    

    @Override
    public void init() 

        mLocationTV = (TextView) findViewById(R.id.tv_goods_location);,

        getLocation();//获取经纬度
        mapThread = new MapThread();
        mapThread.start();

    

    //获取经纬度
    public void getLocation() 
        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        List<String> lp = lm.getAllProviders();// 返回所有已知的位置提供者的名称列表,包括未获准访问或调用活动目前已停用的。
        for (String item : lp) 
//            Log.i("---->可用位置服务:", item);
        

        Criteria criteria = new Criteria();
        criteria.setCostAllowed(false);//设置位置服务免费
        criteria.setAccuracy(Criteria.ACCURACY_COARSE); //设置水平位置精度
        String providerName = lm.getBestProvider(criteria, true); //getBestProvider 只有允许访问调用活动的位置供应商将被返回

        if (providerName != null) 
            Location location = lm.getLastKnownLocation(providerName);
            latitude = location.getLatitude();//获取维度信息
            longitude = location.getLongitude();//获取经度信息
         else 
            ToastUtil.show(this, "1.请检查网络连接 \\n2.请打开我的位置");
        
    


    class MapThread extends Thread 
        @Override
        public void run() 
            super.run();
            String uriStr = MessageFormat.format(mapUriStr, latitude, longitude);
            HttpGet httpGet = new HttpGet(uriStr);//生成一个请求对象
            HttpClient httpClient = new DefaultHttpClient(); //生成一个Http客户端对象

            try 
                httpResponse = httpClient.execute(httpGet); //使用Http客户端发送请求对象
                httpEntity = httpResponse.getEntity(); //获取响应内容
                BufferedReader reader = new BufferedReader(new InputStreamReader(httpEntity.getContent()));

                result = "";
                String line = "";
                while ((line = reader.readLine()) != null) 
                    result += line;
                

		Log.v("地址:",result );

             catch (Exception e) 
                e.printStackTrace();
            

        
    



获取城市名摘自这里


以上是关于php 根据经纬度 获得 城市名的主要内容,如果未能解决你的问题,请参考以下文章

用php代码根据经纬度,如何获得城市名?

怎样根据GPS获得的经纬度来获取城市名

怎样根据GPS获得的经纬度来获取城市名?

如何根据经纬度来获取城市名

根据百度API获得经纬度,然后根据经纬度在获得城市信息

Java根据百度API获得经纬度,然后根据经纬度在获得城市信息