CN111680227A - 一种在地图上搜索n公里范围内目标点的方法 - Google Patents
一种在地图上搜索n公里范围内目标点的方法 Download PDFInfo
- Publication number
- CN111680227A CN111680227A CN202010509327.7A CN202010509327A CN111680227A CN 111680227 A CN111680227 A CN 111680227A CN 202010509327 A CN202010509327 A CN 202010509327A CN 111680227 A CN111680227 A CN 111680227A
- Authority
- CN
- China
- Prior art keywords
- target point
- point
- search
- dimensional map
- searching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,尤其涉及一种在地图上搜索N公里范围内目标点的方法,包括如下步骤:S1、获取包含二维地图内容的二维地图信息并将二维地图信息储存在储存端;S2、目标点数据初始化;S3、确定搜索点并搜索目标点;本发明应用于计算机软件领域,地图软件可以利用本发明方法快速搜索N公里范围内的目标点A,通过互联网获取二维地图信息,用户所在的位置为搜索点B,以目标点A为中心建立k边型,通过射线法快速准确的判断搜索点B是否在k边型内,如果在则显示目标点A的位置,解决现有技术中以搜索点B为中心搜索目标点A的方法步骤繁琐,运算速度慢、搜索点B发生变化后产生大量不必要运算步骤的技术问题。
Description
技术领域
本发明涉及一种快速搜索目标点的方法,尤其涉及一种应用在计算机领域的快速在地图上搜索N公里范围内目标点的方法。
背景技术
互联网地图在当今社会中应用非常广泛,用户可以通过互联网地图结合定位装置,准确的获知自己距离某目标点的距离及到达的路径。利用互联网地图和定位装置及计算机,可以搜索到某一范围内的目标点。例如当想要去餐馆时,可以通过定位装置获得用户的位置,然后计算一定公里范围内的所有的餐馆并在互联网地图上显示出该范围内餐馆的数量。现有技术中搜索某一范围内目标点的方式通常是先确定用户所在的点的位置,即获得搜索点的位置,然后以搜索点为中心以某一距离为半径确定一个在地图上的圆,然后再该圆内搜索目标点,确定目标点的数量、位置等信息。现有技术中的方法步骤较为繁琐,计算过程复杂,运算速度较慢,而且由于定位装置会有一定的误差,没有必要在以搜索点为圆心的圆内搜索目标点,仅需要建立在误差范围内的以搜索点为中心的多边形,在多边形内确定是否有目标点即可。另外由于用户位置即搜索点位置经常变动,每次变动后都要重新确定以搜索点为中心的原然后在该圆范围内搜索目标点,有时甚至变动距离很小也需要重新进行上述运算过程,显然会造成步骤繁琐、运算速度慢。如果建立以目标点为圆心搜索搜索点的方法,则会避免很多不必要的运算。
因此,有必要对现有技术改进以解决上述技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种在地图上搜索N公里范围内目标点的方法,解决现有技术中利用计算机程序以搜索点B为中心搜索目标点A的方法步骤繁琐,运算速度慢、搜索点B位置发生微小变化后会进行大量不必要运算步骤的技术问题具体而言通过以下技术方案实现:
设计的一种在地图上搜索N公里范围内目标点的方法,包括如下步骤:
S1、获取包含二维地图内容的二维地图信息并将二维地图信息储存在储存端,储存端可以采用现有技术中的ROM存储器,可以提前将二维地图内容直接储存在ROM上,也可以利用互联网在使用本发明方法时获取实时二维地图内容,也可以采用第三方地图类程序软件直接获取二维地图内容;
S2、目标点数据初始化,包括如下步骤:
S21、从储存端获取二维地图信息,在二维地图上获取目标点A的位置并确定单位距离L公里,可以在二维地图内容上建立二维坐标,以目标点A为原点;
S22、确定以目标点A为起点的k条射线a1、a2、a3……ak,在射线a1、a2、a3……ak上分别获取极值点T1、T2、T3……Tk,,确定极值点T1与目标点A的距离为b1,极值点T2与目标点A的距离为b2……极值点Tk与目标点A的距离为bk,b1≤N<(b1+L),b2≤N<(b2+L)……bk≤N<(bk+L),射线a1、a2、a3……ak中任意一条射线与其他射线的夹角中最小的夹角均为(360°/k),即a1与a2、a2与a3、a3与a4……a(k-1)与ak之间的夹角都是(360°/k),k≥3;
S23、在地图上连接T1、T2、T3……Tk,形成k边型,获取包含k边型信息的初始多边形信息并将初始多边形信息储存在储存端,k边型的中心为目标点A,k边型范围内的点离目标点A的距离在N公里以内,当k的值足够大且b1、b2……bk均足够小时可以近似的看做离目标点A距离N公里范围内的所有点均在k边型内;
S3、确定搜索点并搜索目标点,包括如下步骤:
S31、从储存端获取二维地图信息,在二维地图上获取搜索点B的位置,可以在以目标点A为原点的二维坐标系中确定搜索点B的坐标值;
S32、从储存端获取初始多边形信息,运算端通过射线法判断搜索点B是否在k边型内,如果搜索点B在k边型内生成“是”信号,运算端可以采用现有技术中的CPU、单片机等可以通过设计程序进行运算的装置,运算步骤可以为以搜索点B为起点,向k边型任意一个方向引一条射线,使得射线与k边型相交,交点个数如果是奇数,则表示搜索点B在k边型范围内,运算端生成“是”信号,如果是偶数,则搜索点B在k边型外,运算端不生成信号,同时避免生成仅与k边型一个顶点相交的射线和与k边型某一边平行的射线,因为b1、b2……bk均小于等于N,如果生成“是”信号则证明搜索点B离目标点A的距离在N公里以内;
S33、运算端将“是”信号传递给搜索端,“是”信号控制搜索端启动,搜索端启动后确定搜索点B所在的k边型,搜索端可以设置为微型CPU,能在二维地图上通过现有技术中的运算步骤确定搜索点B所在的k边型,进而确定该k边型中心处的目标点A的位置,确定搜索点B的位置、目标点A的位置及确定k边型的方法均可通过在二维地图内容上建立二维坐标系实现,搜索端控制显示端显示该目标点A的位置,显示端可以设置为手机屏幕显示器、液晶显示器等,显示端显示的目标点A即为离搜索点B的距离小于等于N公里的点,用户可以通过本方法迅速准确的获取离搜索点B距离N公里范围内的目标点A的位置信息,用户可以根据需要选择N的取值,例如当用户所在的位置为搜索点B,某一餐厅的位置为目标点A,通过上述步骤,用户可以快速确定餐厅是否距离所在位置N公里范围内,如果在N公里范围内,可以迅速获取餐厅的位置。
进一步,所述步骤S2中的目标点A包括2个以上,在二维地图内容上建立二维坐标系后,多个目标点A在坐标系上坐标值不同,通过步骤S1、S2、S3,显示端可以显示离搜索点B距离N公里范围内的所有的目标点A,当二维地图内容上有多个点都满足用户的要求时,如当用户所在位置为搜索点B,用户需要搜索地图上的银行,可以将银行在二维地图内容上的位置记为目标点A,在二维地图上有多个银行,即有多个目标点A时,用户可以迅速获得所有离搜索点B距离N公里范围内所有银行的位置信息,用户可以根据需要最后选择其中1个或多个银行。
进一步,所述步骤S1中还包括:
S11、储存端连接因特网;
S12、从因特网上获取实时二维地图内容并生成二维地图信息,从因特网上获取的二维地图信息具有实时性,更加准确;
S13、将二维地图信息储存在储存端,通过调用互联网地图的Api,获取二维地图信息并在该二维地图信息上确定目标点A、搜索点B、单位距离L公里等位置信息。
进一步,所述步骤S22具体包括确定射线an后,以目标点A为圆心,将射线an旋转(360°/k),确定旋转后的射线a(n+1),1≤n≤(k-1),从n=1开始,重复上述步骤,至n+1=k时结束,n为自然数,a1的方向可以任意,当确定a1后,a2的方向按上述步骤确定,确定a2后a3的方向也按上述步骤确定,同理确定a4、a5、a6……ak的方向,上述步骤可以通过微型CPU内的现有技术的程序实现,通过上述步骤可以快速、准确的确定射线a1、a2……ak的方向。
进一步,所述步骤S22具体还包括如下步骤:
S221、在射线am上获取离目标点A距离bm公里的极值点Tm,1≤m≤k,m为自然数,射线a1、a2……ak均按照该步骤进行;
S222、判断bm≤N是否成立,如果bm≤N不成立,则进行步骤S223,判断N<(bm+L)是否成立,如果N<(bm+L)不成立,则进行步骤S224,按照该步骤进行后,保证bm≤N≤(bm+L),当L足够小且k足够大在误差范围内时,可以近似的认为bm=N,所有离目标点A距离N公里范围内的所有点均在k边型内;
步骤S223包括如下步骤:
S2231、在射线am上确定离目标点A距离(bm-L)的点Tm`,将(bm-L)记为bm,将Tm`记为Tm;
S2232、重复步骤S222,直至bm≤N结束步骤;
步骤S224包括如下步骤:
S2241、在射线am上确定离目标点A距离(bm+L)的点Tm``,将(bm+L)记为bm,将Tm``记为Tm;
S2242重复步骤S222,直至N<(bm+L)结束步骤。
进一步,步骤S32中运算端通过PNPoly算法判断搜索点B是否在k边型内,运算端可以设置为可以进行C语言编程的CPU,在CPU内写入PNPoly程序,具体程序可以为:
/** * 判断搜索点(lng,lat)是否在多边形范围内 * @param coordinateList 多边形每条边的点按顺序排列的集合 * @param lng 搜索点经度 * @param lat 搜索点纬度 * @return */ public static final boolean isInside(List<Coordinate>coordinateList, double lng, double lat) { boolean result = false; intsize = coordinateList.size(); int i = 0; for (int j = size - 1; i <size; j = i++) { // 多边形一条边上的两个点坐标 Coordinatecoori = coordinateList.get(i); Coordinate coorj =coordinateList.get(j); Double lngi = coori.getLongitude();Double lngj = coorj.getLongitude(); Double latj = coorj.getLatitude(); Double lati = coori.getLatitude(); if (lngi >= lng &&lngj <= lng || lngi <= lng && lngj >= lng) { double lat0 = (latj- lati) * (lng - lngi) / (lngj - lngi) + lati; if (lat == lat0){ // 搜索点在多边形边界上 return true; }if (lat < lat0) { // 计算射线与多边形相交次数,如果为奇数,搜索点在多边形范围内result = !result; } } } return result; }。
进一步,所述L的值设置为0.1,即单位长度为100米,单位长度在地图上已经足够小,通常定位设备定位的位置误差在100米以上,设置该单位长度既能避免过多的计算步骤,又能保证误差不太大。
进一步,所述k的值设置为7,在L设置为0.1的情况下以目标点A为中心的正7边型可以近似的看作包含了离目标点A距离b公里的所有的点,所产生的误差在范围内。
进一步,所述N的值设置为3,即本发明为在地图上搜索3公里范围内目标点的方法,在直径3公里的范围通常是用户可以步行到达的范围,范围太大地图内容中包含的目标点A数量过多,运算过程过于复杂,范围太少很可能范围内无法包含目标点A。
本发明的积极有益的技术效果包括:
(1)本发明利用以目标点为中心判断搜索点是否某一范围内的反向搜索目标点的方法,即使搜索点经常变动,地图软件也可以够快速、准确的在地图上搜索N公里范围内目标点,避免产生不必要的运算过程;
(2)以目标点为中心建立k边型,避免建立圆并在圆内搜索运算过程复杂;
(3)设置单位距离为0.1公里,N为3公里,k为7,根据目前定位技术的普遍情况,本发明的误差范围在可接受的范围内;
(4)采用射线法及PNPoly算法判断搜索点B是否在k边型内,方法简单迅速;
(5)本发明应用于计算机软件领域,地图软件可以利用本发明方法快速搜索N公里范围内的目标点A,通过互联网获取二维地图信息,用户所在的位置为搜索点B,以目标点A为中心建立k边型,通过射线法快速准确的判断搜索点B是否在k边型内,如果在则显示目标点A的位置;
本发明的其他有益效果将结合下文具体实施例进行进一步的说明。
附图说明
下面结合附图和实施例对本发明作进一步描述:
图1为本发明的总流程图;
图2为本发明步骤S2的流程图;
图3为本发明建立以目标点为中心的k边型的示意图;
图4为本发明射线法判断搜索点是否在多边形内的示意图。
具体实施方式
实施例一:一种在地图上搜索N公里范围内目标点的方法,如图1-4所示,包括如下步骤:
S1、获取包含二维地图内容的二维地图信息并将二维地图信息储存在储存端,储存端可以采用现有技术中的ROM存储器,可以提前将二维地图内容直接储存在ROM上,也可以利用互联网在使用本发明方法时获取实时二维地图内容,也可以采用第三方地图类程序软件直接获取二维地图内容;
S2、目标点数据初始化,包括如下步骤:
S21、从储存端获取二维地图信息,在二维地图上获取目标点A的位置并确定单位距离L公里,可以在二维地图内容上建立二维坐标,以目标点A为原点;
S22、确定以目标点A为起点的k条射线a1、a2、a3……ak,在射线a1、a2、a3……ak上分别获取极值点T1、T2、T3……Tk,,确定极值点T1与目标点A的距离为b1,极值点T2与目标点A的距离为b2……极值点Tk与目标点A的距离为bk,b1≤N<(b1+L),b2≤N<(b2+L)……bk≤N<(bk+L),射线a1、a2、a3……ak中任意一条射线与其他射线的夹角中最小的夹角均为(360°/k),即a1与a2、a2与a3、a3与a4……a(k-1)与ak之间的夹角都是(360°/k),k≥3;
S23、在地图上连接T1、T2、T3……Tk,形成k边型,获取包含k边型信息的初始多边形信息并将初始多边形信息储存在储存端,k边型的中心为目标点A,k边型范围内的点离目标点A的距离在N公里以内,当k的值足够大且b1、b2……bk均足够小时可以近似的看做离目标点A距离N公里范围内的所有点均在k边型内;
S3、确定搜索点并搜索目标点,包括如下步骤:
S31、从储存端获取二维地图信息,在二维地图上获取搜索点B的位置,可以在以目标点A为原点的二维坐标系中确定搜索点B的坐标值;
S32、从储存端获取初始多边形信息,运算端通过射线法判断搜索点B是否在k边型内,如果搜索点B在k边型内生成“是”信号,运算端可以采用现有技术中的CPU、单片机等可以通过设计程序进行运算的装置,运算步骤可以为以搜索点B为起点,向k边型任意一个方向引一条射线,使得射线与k边型相交,交点个数如果是奇数,则表示搜索点B在k边型范围内,运算端生成“是”信号,如果是偶数,则搜索点B在k边型外,运算端不生成信号,同时避免生成仅与k边型一个顶点相交的射线和与k边型某一边平行的射线,因为b1、b2……bk均小于等于N,如果生成“是”信号则证明搜索点B离目标点A的距离在N公里以内;
S33、运算端将“是”信号传递给搜索端,“是”信号控制搜索端启动,搜索端启动后确定搜索点B所在的k边型,搜索端可以设置为微型CPU,能在二维地图上通过现有技术中的运算步骤确定搜索点B所在的k边型,进而确定该k边型中心处的目标点A的位置,确定搜索点B的位置、目标点A的位置及确定k边型的方法均可通过在二维地图内容上建立二维坐标系实现,搜索端控制显示端显示该目标点A的位置,显示端可以设置为手机屏幕显示器、液晶显示器等,显示端显示的目标点A即为离搜索点B的距离小于等于N公里的点,用户可以通过本方法迅速准确的获取离搜索点B距离N公里范围内的目标点A的位置信息,用户可以根据需要选择N的取值,例如当用户所在的位置为搜索点B,某一餐厅的位置为目标点A,通过上述步骤,用户可以快速确定餐厅是否距离所在位置N公里范围内,如果在N公里范围内,可以迅速获取餐厅的位置。
本实施例中,所述步骤S2中的目标点A包括2个以上,在二维地图内容上建立二维坐标系后,多个目标点A在坐标系上坐标值不同,通过步骤S1、S2、S3,显示端可以显示离搜索点B距离N公里范围内的所有的目标点A,当二维地图内容上有多个点都满足用户的要求时,如当用户所在位置为搜索点B,用户需要搜索地图上的银行,可以将银行在二维地图内容上的位置记为目标点A,在二维地图上有多个银行,即有多个目标点A时,用户可以迅速获得所有离搜索点B距离N公里范围内所有银行的位置信息,用户可以根据需要最后选择其中1个或多个银行。
本实施例中,所述步骤S1中还包括:
S11、储存端连接因特网;
S12、从因特网上获取实时二维地图内容并生成二维地图信息,从因特网上获取的二维地图信息具有实时性,更加准确;
S13、将二维地图信息储存在储存端,通过调用互联网地图的Api,获取二维地图信息并在该二维地图信息上确定目标点A、搜索点B、单位距离L公里等位置信息。
本实施例中,所述步骤S22具体包括确定射线an后,以目标点A为圆心,将射线an旋转(360°/k),确定旋转后的射线a(n+1),1≤n≤(k-1),从n=1开始,重复上述步骤,至n+1=k时结束,n为自然数,a1的方向可以任意,当确定a1后,a2的方向按上述步骤确定,确定a2后a3的方向也按上述步骤确定,同理确定a4、a5、a6……ak的方向,上述步骤可以通过微型CPU内的现有技术的程序实现,通过上述步骤可以快速、准确的确定射线a1、a2……ak的方向。
本实施例中,所述步骤S22具体还包括如下步骤:
S221、对所有的极值点T1、T2……Tm……Tk均进行判断运算,判断运算的步骤如下,在射线am上获取离目标点A距离bm公里的极值点Tm,1≤m≤k,m为自然数,射线a1、a2……ak均按照该步骤进行;
S222、判断bm≤N是否成立,如果bm≤N不成立,则进行步骤S223,判断N<(bm+L)是否成立,如果N<(bm+L)不成立,则进行步骤S224,按照该步骤进行后,保证bm≤N≤(bm+L),当L足够小且k足够大在误差范围内时,可以近似的认为bm=N,所有离目标点A距离N公里范围内的所有点均在k边型内;
步骤S223包括如下步骤:
S2231、在射线am上确定离目标点A距离(bm-L)的点Tm`,将(bm-L)记为bm,将Tm`记为Tm;
S2232、重复步骤S222,直至bm≤N结束步骤;
步骤S224包括如下步骤:
S2241、在射线am上确定离目标点A距离(bm+L)的点Tm``,将(bm+L)记为bm,将Tm``记为Tm;
S2242重复步骤S222,直至N<(bm+L)结束步骤。
本实施例中,步骤S32中运算端通过PNPoly算法判断搜索点B是否在k边型内,运算端可以设置为可以进行C语言编程的CPU,在CPU内写入PNPoly程序,具体程序可以为:
/** * 判断搜索点(lng,lat)是否在多边形范围内 * @param coordinateList 多边形每条边的点按顺序排列的集合 * @param lng 搜索点经度 * @param lat 搜索点纬度 * @return */ public static final boolean isInside(List<Coordinate>coordinateList, double lng, double lat) { boolean result = false; intsize = coordinateList.size(); int i = 0; for (int j = size - 1; i <size; j = i++) { // 多边形一条边上的两个点坐标 Coordinatecoori = coordinateList.get(i); Coordinate coorj =coordinateList.get(j); Double lngi = coori.getLongitude();Double lngj = coorj.getLongitude(); Double latj = coorj.getLatitude(); Double lati = coori.getLatitude(); if (lngi >= lng &&lngj <= lng || lngi <= lng && lngj >= lng) { double lat0 = (latj- lati) * (lng - lngi) / (lngj - lngi) + lati; if (lat == lat0){ // 搜索点在多边形边界上 return true; }if (lat < lat0) { // 计算射线与多边形相交次数,如果为奇数,搜索点在多边形范围内result = !result; } } } return result; }。
本实施例中,所述L的值设置为0.1,即单位长度为100米,单位长度在地图上已经足够小,通常定位设备定位的位置误差在100米以上,设置该单位长度既能避免过多的计算步骤,又能保证误差不太大。
本实施例中,所述k的值设置为7,在L设置为0.1的情况下以目标点A为中心的正7边型可以近似的看作包含了离目标点A距离b公里的所有的点,所产生的误差在范围内。
本实施例中,所述N的值设置为3,即本发明为在地图上搜索3公里范围内目标点的方法,在直径3公里的范围通常是用户可以步行到达的范围,范围太大地图内容中包含的目标点A数量过多,运算过程过于复杂,范围太少很可能范围内无法包含目标点A。
实施例二:一种在地图上搜索N公里范围内目标点的方法,如图1-4所示,包括如下步骤:
S1、确定目标点名称和搜索中心。服务器获取用户端发出的搜索请求,从中确定目标点名称和搜索中心。为给用户提供便利,所述搜索请求可以是请求端通过语音、短信、电子邮件等方式直接发送的,也可以是通过服务平台或用户数据库转发间接获取的;并获取包含二维地图内容的二维地图信息并将二维地图信息储存在储存端;
S2、以所述搜索中心为中心,在预定范围内搜索地图,获得所述目标点的经纬度,并将目标点数据初始化,包括如下步骤:S21、从储存端获取二维地图信息,在二维地图上获取目标点A的位置并确定单位距离L公里;S22、确定以目标点A为起点的k条射线a1、a2、a3……ak,在射线a1、a2、a3……ak上分别获取极值点T1、T2、T3……Tk,确定极值点T1与目标点A的距离为b1,极值点T2与目标点A的距离为b2……极值点Tk与目标点A的距离为bk,b1≤N<(b1+L),b2≤N<(b2+L)……bk≤N<(bk+L),射线a1、a2、a3……ak中任意一条射线与其他射线的夹角中最小的夹角均为(360°/k),k≥3;S23、在地图上连接T1、T2、T3……Tk,形成k边型,获取包含k边型信息的初始多边形信息并将初始多边形信息储存在储存端。为了给用户提供较全面的目标点信息,搜索的地图可以是本地地图数据库中的地图,也可以是网络地图数据库中的地图。例如,某些知名搜索网站的地图数据,丁丁网、爱帮网等。一般情况下,预定范围为圆心为所述搜索中心,半径为预定半径的圆形区域,例如以用户当前位置为搜索中心,方圆3公里以内搜索川菜馆。有时由于地形的关系,圆形区域可以修改成扇形区域或者方形区域等,预定半径也可以根据需要进行修改,上述修改不影响搜索结果的精准度。
S3、基于搜索内容,根据经纬度基准信息修正所述目标点的经纬度,获得所述目标点的修正经纬度,确定搜索点并搜索目标点,包括如下步骤:S31、从储存端获取二维地图信息,在二维地图上获取搜索点B的位置;S32、从储存端获取初始多边形信息,运算端通过射线法判断搜索点B是否在k边型内,如果搜索点B在k边型内生成“是”信号;S33、“是”信号控制搜索端启动,搜索端启动后确定搜索点B所在的k边型,并确定该k边型中心处的目标点A的位置,搜索端控制显示端显示该目标点A的位置。为了保护国防安全及国家经济命脉的安全,防止军事基地和关系国家经济利益的企业遭到破坏,通常中国地图中的位置信息和实际位置信息存在一定的偏移值。因此搜索得到的目标点的经纬度信息,需要通过与经纬度基准信息比对进行修正。所述经纬度基准信息可以是国家规定的经纬度偏移值,也可以是其他可参考的标准,例如,以一个基准地图为校验标准计算确定所搜索的地图相对于基准地图的经纬度偏移值,以所述经纬度偏移值为经纬度基准信息,所述基准地图上各地点的经纬度值与实际的经纬度值相同或较为接近。
S4、基于所述目标点的修正经纬度,获取所述目标点的位置信息。一般情况下,反馈至请求端的目标点的位置信息多以地图和/或文字的形式反馈。目标点的位置信息可以是目标点的修正经纬度,即目标点的实际地理位置(实际经度和纬度),也可以是目标点位置的路名、门牌号。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种在地图上搜索N公里范围内目标点的方法,其特征在于,包括如下步骤:
S1、获取包含二维地图内容的二维地图信息并将二维地图信息储存在储存端;
S2、目标点数据初始化,包括如下步骤:
S21、从储存端获取二维地图信息,在二维地图上获取目标点A的位置并确定单位距离L公里;
S22、确定以目标点A为起点的k条射线a1、a2、a3……ak,在射线a1、a2、a3……ak上分别获取极值点T1、T2、T3……Tk,确定极值点T1与目标点A的距离为b1,极值点T2与目标点A的距离为b2……极值点Tk与目标点A的距离为bk,b1≤N<(b1+L),b2≤N<(b2+L)……bk≤N<(bk+L),射线a1、a2、a3……ak中任意一条射线与其他射线的夹角中最小的夹角均为(360°/k),k≥3;
S23、在地图上连接T1、T2、T3……Tk,形成k边型,获取包含k边型信息的初始多边形信息并将初始多边形信息储存在储存端;
S3、确定搜索点并搜索目标点,包括如下步骤:
S31、从储存端获取二维地图信息,在二维地图上获取搜索点B的位置;
S32、从储存端获取初始多边形信息,运算端通过射线法判断搜索点B是否在k边型内,如果搜索点B在k边型内生成“是”信号;
S33、“是”信号控制搜索端启动,搜索端启动后确定搜索点B所在的k边型,并确定该k边型中心处的目标点A的位置,搜索端控制显示端显示该目标点A的位置。
2.如权利要求1所述的在地图上搜索N公里范围内目标点的方法,其特征在于:所述步骤S2中的目标点A包括2个以上。
3.如权利要求2所述的在地图上搜索N公里范围内目标点的方法,其特征在于,所述步骤S1中还包括:
S11、储存端连接因特网;
S12、从因特网上获取实时二维地图内容并生成二维地图信息;
S13、将二维地图信息储存在储存端。
4.如权利要求2所述的在地图上搜索N公里范围内目标点的方法,其特征在于,所述步骤S22具体包括:确定射线an后,以目标点A为圆心,将射线an旋转(360°/k),确定旋转后的射线为a(n+1),1≤n≤(k-1),n为自然数;从n=1开始,重复上述步骤,至n+1=k时结束。
5.如权利要4所述的在地图上搜索N公里范围内目标点的方法,其特征在于,所述步骤S22具体还包括如下步骤:
S221、在射线am上获取离目标点A距离bm公里的极值点Tm,1≤m≤k,m为自然数;
S222、判断bm≤N是否成立,如果bm≤N不成立,则进行步骤S223,判断N<(bm+L)是否成立,如果N<(bm+L)不成立,则进行步骤S224;
步骤S223包括如下步骤:
S2231、在射线am上确定离目标点A距离(bm-L)的点Tm`,将(bm-L)记为bm,将Tm`记为Tm;
S2232、重复步骤S222;
步骤S224包括如下步骤:
S2241、在射线am上确定离目标点A距离(bm+L)的点Tm``,将(bm+L)记为bm,将Tm``记为Tm;
S2242重复步骤S222。
6.如权利要求5所述的在地图上搜索N公里范围内目标点的方法,其特征在于:所述步骤S32中运算端通过PNPoly算法判断搜索点B是否在k边型内。
7.如权利要求6所述的在地图上搜索N公里范围内目标点的方法,其特征在于:所述L的值设置为0.1。
8.如权利要求7所述的在地图上搜索N公里范围内目标点的方法,其特征在于:所述k的值设置为7。
9.如权利要求8所述的在地图上搜索N公里范围内目标点的方法,其特征在于:所述N的值设置为3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509327.7A CN111680227B (zh) | 2020-06-08 | 2020-06-08 | 一种在地图上搜索n公里范围内目标点的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010509327.7A CN111680227B (zh) | 2020-06-08 | 2020-06-08 | 一种在地图上搜索n公里范围内目标点的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111680227A true CN111680227A (zh) | 2020-09-18 |
CN111680227B CN111680227B (zh) | 2023-04-21 |
Family
ID=72454358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010509327.7A Active CN111680227B (zh) | 2020-06-08 | 2020-06-08 | 一种在地图上搜索n公里范围内目标点的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680227B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033918A (zh) * | 2010-12-07 | 2011-04-27 | 武汉若鱼网络科技有限公司 | 基于时间位置信息搜索目标用户的方法及系统 |
CN102547598A (zh) * | 2010-12-16 | 2012-07-04 | 上海博泰悦臻电子设备制造有限公司 | 呼叫中心及其目标点的搜索方法、目标点的搜索系统 |
CN104507047A (zh) * | 2014-12-15 | 2015-04-08 | 福建星网锐捷网络有限公司 | 一种poi区域获取方法及装置 |
CN106097402A (zh) * | 2016-06-20 | 2016-11-09 | 深圳市麦谷科技有限公司 | 一种判断目标点是否位于预定区域内的方法及系统 |
-
2020
- 2020-06-08 CN CN202010509327.7A patent/CN111680227B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033918A (zh) * | 2010-12-07 | 2011-04-27 | 武汉若鱼网络科技有限公司 | 基于时间位置信息搜索目标用户的方法及系统 |
CN102547598A (zh) * | 2010-12-16 | 2012-07-04 | 上海博泰悦臻电子设备制造有限公司 | 呼叫中心及其目标点的搜索方法、目标点的搜索系统 |
CN104507047A (zh) * | 2014-12-15 | 2015-04-08 | 福建星网锐捷网络有限公司 | 一种poi区域获取方法及装置 |
CN106097402A (zh) * | 2016-06-20 | 2016-11-09 | 深圳市麦谷科技有限公司 | 一种判断目标点是否位于预定区域内的方法及系统 |
Non-Patent Citations (1)
Title |
---|
金文华,何涛,唐卫清,唐荣锡,刘慎权: "简单多边形可见点问题的快速求解算法" * |
Also Published As
Publication number | Publication date |
---|---|
CN111680227B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10091754B2 (en) | Correcting interference of non-line-of-sight signals | |
US10107642B2 (en) | Map information management and correction of geodata | |
US20150338522A1 (en) | Positioning Using Non-Line-Of-Sight Signals | |
US10977328B2 (en) | Providing notifications based on geofencing search results | |
US11243288B2 (en) | Location error radius determination | |
US20150235266A1 (en) | Systems and methods to create a geographic heatmap | |
CN107430632B (zh) | 根据用户信号动态地控制地图视口 | |
CN104239396A (zh) | 一种搜索电子地图上业务对象的方法和装置 | |
CN110390045B (zh) | 基于位置服务的兴趣点推荐方法及装置 | |
EP4075831A2 (en) | Intelligent computer search functionality for locating items of interest near users | |
CN105203121A (zh) | 在地理应用程序中动态地整合离线和在线建议 | |
US20160292239A1 (en) | Method for sorting and displaying data on a portable electronic device | |
CN110109165B (zh) | 行驶轨迹中异常点的检测方法及装置 | |
CN110427574B (zh) | 路线相似度确定方法、装置、设备和介质 | |
CN110309244B (zh) | 一种目标点定位的方法和装置 | |
CN117098227B (zh) | 位置信息的确定方法、装置、设备及存储介质 | |
US9706352B2 (en) | System and method for determining a boundary of a geographic area | |
CN111680227B (zh) | 一种在地图上搜索n公里范围内目标点的方法 | |
US20210311971A1 (en) | Geocoding methods and systems of correcting latitude and longitude of a point of interest | |
WO2015192716A1 (zh) | 一种基于电子地图的划线搜索方法和装置 | |
JP5617027B1 (ja) | 情報管理システム及び情報管理プログラム | |
WO2016058533A1 (zh) | 一种描述性位置提示信息的生成及定位方法和装置 | |
US8688379B1 (en) | Method and system for generating drive time isocontours using nested graphs | |
CN111274272B (zh) | 一种对象的查找方法、装置及计算机系统 | |
US20210289315A1 (en) | System and Method for Validating Accuracy of Geographic Location for an Address |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |