超越位置服务论坛
超越物联
微信查车
手机查车
物联小管家
智慧风控
车务在线

联系方式:

24小时QQ:1375182942

工作电话:029-88443911 (9点-18点)

技术微信
exlive二次开发交流QQ群: 335061247
  欢迎您:    请先登录  |  登 录  |  注 册   |  在 线  |  搜 索  |  帮 助   |  风 格  

论坛帖子
  『EXLIVE超越位置服务平台』 → 『  』 → 『  』 →  如何快速判断经纬度坐标在中国大陆

发表新帖子  发表新投票  回复此帖您是该帖的第459 个阅读者
   * 贴子主题:    如何快速判断经纬度坐标在中国大陆  到底部  
 离线    admin
威望: 0
级别: 无极天王
魅力: 2144
经验: 11025
现金: 9165
发帖数: 100 篇
注册时间: 2000-01-01 00:00
  你未登录消息  查看 你未登录 好友 你未登录引用 
 
  由于火星坐标的原因,国内地图经纬度经过了加密,在使用时需要加入纠偏值,若在国外使用则不需要加入纠偏值;还有在国内的经纬度逆地址解析和国外的逆地址解析会使用不同的接口。因此判断经纬度坐标是否在国内,变成了必须的一个操作,有没有更简单高效的方法呢?下面参考晚上来源信息,结合我们实际使用总结了一下方法,并附有C++函数代码。
  基本思路是:把整个行政区域划分为几个小的矩形,然后再排除掉一些矩形区域。只要一个点在限定的区域内,并且不在排除的区域内,则判定成功,否则失败。下图中蓝色区域为限定区域,红色区域为排除区域。这种快速判定的方法是从Nokia map中挖掘出来的。
>> 优点:快速,相对准确;
>> 缺点:边界误差较大

此方法实现代码如下
>> 函数功能:判断经纬度是否在中国
>> 函数名称:IsInsideChina
>> 输入参数: dbLatitude 查询纬度 dbLongitude 查询经度
>> 返回值:true 在中国,false不在中国

bool IsInsideChina(double dbLatitude,double dbLongitude)
{
 double inChina[][4] = {
  {49.220400,79.446200,42.889900,96.330000},
  {54.141500,109.687200,39.374200,135.000200},
  {42.889900,073.124600,29.529700,124.143255},
  {29.529700,082.968400,26.718600,097.035200},
  {29.529700,097.025300,20.414096,124.367395},
  {20.414096,107.975793,17.871542,111.744104},
 };
 double outChina[][4] = {
  {25.398623,119.921265,21.785006,122.497559},
  {22.284000,101.865200,20.098800,106.665000},
  {21.542200,106.452500,20.487800,108.051000},
  {55.817500,109.032300,50.325700,119.127000},
  {55.817500,127.456800,49.557400,137.022700},
  {44.892200,131.266200,42.569200,137.022700},
 };
 for(int i=0;i<6;i++)
 {
  if(dbLatitude<=inChina[i][0] &&dbLatitude >=inChina[i][2] && dbLongitude>=inChina[i][1]&& dbLongitude<=inChina[i][3])
  {
   for(int j=0;j<6;j++)
   {
    if(dbLatitude<=outChina[j][0] &&dbLatitude>=outChina[j][2] && dbLongitude>=outChina[j][1]&& dbLongitude<=outChina[j][3])
    {
     return false;
    }
   }
   return true;
  }
 }
 return false;
}

本文基本思路来自:http://blog.csdn.net/cuibo1123/article/details/45691631

更多精彩内容请扫描以下二维码进行关注!



 


  发帖时间  2017-06-08 16:52    发帖者IP  保 密楼 主  楼主  
  共1页  0个记录  

中文版权所有  [超越位置服务平台]
本论坛言论纯属发表者个人意见,与 『EXLIVE超越位置服务平台 』立场无关