精华内容
下载资源
问答
  • 地理围栏

    2020-12-25 22:08:36
    <div><p>功能描述 ...<strong>Native端对应字段/方法 高德地图地理围栏功能</p><p>该提问来源于开源项目:fluttify-project/amap_map_fluttify</p></div>
  • mysql 围栏_地理围栏

    2021-02-01 21:17:45
    地理围栏技术本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。当手机进入、离开某个特定...

    地理围栏技术

    本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

    地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。当手机进入、离开某个特定地理区域,或在该区域内活动时,手机可以接收自动通知和警告。有了地理围栏技术,位置社交网站就可以帮助用户在进入某一地区时自动登记。

    1地理围栏核心

    在地理围栏中,有几个核心,区别与普通的LBS:

    1.地理区域是被网格化的。网格化的标准是根据一个地理区域内的业务和商业聚类的,而不是纯粹的经纬度和城市地图的匹配。

    2.实际上地理围栏的各个围栏的区隔是一个个的应用需求群地图。主要的商业需求聚集在特定区域,形成的一个聚合信息服务区域。

    3.终端自己或者在网络帮助下能够识别所处的围栏。

    4.用户的围栏信息彼此之间能够共享,也能够与应用开发商分享。

    5.双向、互动是关键。

    6.商业群落是地理围栏的核心,类似城市的商圈。

    7.价值整合、场景整合、信息流资金流整合是关键。

    2其他介绍

    中国的运营商有类似的业务,比如区域信息服务,比如城市管理中的网格管理,但是缺少的围栏以及在围栏的开放。只以位置信息看位置服务,局限显而易见,没有业务服务封装的位置信息,缺少核心竞争力。

    当然,地理围栏也有他的风险,比如用户的隐私保护和数据安全,就是一个比较严重的问题,尤其是对于中国的运营商来说。

    可以借鉴的,可能是地理围栏的整合、聚合的模式。在这其间,可能运营商的很多业务可以借鉴。

    应该说地理围栏是一种新的聚合信息服务的理念和模式。不过对于互联网来说,不用于运营商,可能地理围栏商业模式的创新将决定其成功与否。

    展开全文
  • 地理围栏_什么是“地理围栏”?

    千次阅读 2020-09-22 13:07:25
    地理围栏The term is popping up more frequently in news articles, appearing in product manuals, and highlighted as a feature in tons of mobile applications, but what exactly is geofencing? Read on as ...
    地理围栏

    地理围栏

    The term is popping up more frequently in news articles, appearing in product manuals, and highlighted as a feature in tons of mobile applications, but what exactly is geofencing? Read on as we explain what it is, why it’s appearing in more productions and applications, and how you can benefit from using it.

    这个术语在新闻文章中出现的频率更高,出现在产品手册中,并在大量的移动应用程序中被突出显示,但是地理围栏到底是什么? 在我们解释它的含义,为什么它出现在更多产品和应用程序中以及如何从中受益的过程中,请继续阅读。

    什么是地理围栏? (What Is Geofencing?)

    Geofencing is the use of the Global Positioning System (GPS) satellite network and/or local radio-frequency identifiers (such as Wi-Fi nodes or Bluetooth beacons) to create virtual boundaries around a location. The geofence is then paired with a hardware/software application that responds to the boundary in some fashion as dictated by the parameters of the program.

    地理围栏是使用全球定位系统(GPS)卫星网络和/或本地射频标识符(例如Wi-Fi节点或蓝牙信标)在位置周围创建虚拟边界。 然后,将地理围栏与硬件/软件应用程序配对,该应用程序可以根据程序参数的指示以某种方式对边界进行响应。

    While geofence-based hardware and software solutions have been around for decades, the early systems were limited largely to those willing to invest in expensive custom hardware for specific use cases. One of the early commercial uses of geofencing was in the livestock industry wherein a handful of cattle in a herd would be equipped with GPS units and if the herd moved outside of geographic boundaries (the geofence) set by the rancher then the rancher would receive an alert. Similar systems were deployed to safeguard and monitor company vehicle fleets wherein if a company vehicle left the zone it was assigned to managers at the company would be notified.

    尽管基于地理围栏的硬件和软件解决方案已经存在了数十年,但早期的系统在很大程度上限于那些愿意为特定用例购买昂贵的定制硬件的系统。 围栏的早期商业用途之一是在畜牧业中,其中畜群中的几头牛将配备GPS装置,如果该畜群移出Rancher设定的地理边界(地理围栏)之外,则Rancher将获得警报。 部署了类似的系统来保护和监视公司车辆的车队,其中如果公司车辆离开该区域,则将通知分配给公司经理的车辆。

    That’s all very interesting but as someone not running a cattle farm or a delivery fleet you’re probably asking yourself “How does this apply to me? Your title said I should be using geofencing!” So how does it apply to you?

    这都是非常有趣的,但是当某人没有经营牧场或运输车队时,您可能会问自己“这对我有什么影响? 您的标题说我应该使用地理围栏!” 那么,如何将它应用到你吗?

    The widespread adoption of smartphones has put a GPS/Wi-Fi/Bluetooth radio in the pockets of millions of consumers and ushered in an age of incredibly cheap and ubiquitous geolocation markers that has pushed geofencing from an expensive commercial practice into the realm of consumer application. What used to be a very costly tool for very specific applications is now free for developers to include in their software as the consumer already has the necessary hardware. As a result geofencing capabilities are popping up in everything from shopping lists to smart home control packages.

    智能手机的广泛采用已将GPS / Wi-Fi /蓝牙无线电带入了数百万消费者的口袋,并迎来了难以置信的廉价无处不在的地理位置标记时代,将地理围栏从昂贵的商业实践推向了消费者应用领域。 。 由于消费者已经拥有必要的硬件,过去对于某些特定应用来说是一种非常昂贵的工具,现在对于开发人员来说是免费的,因为开发人员可以将其包含在其软件中。 结果,从购物清单到智能家居控制包的所有功能都弹出了地理围栏功能。

    In other words, there’s a whole world of geofencing potential around you worth tapping into. Your smartphone is capable of reminding you to pick up the dry cleaning when you’re near the dry cleaners, of turning down the thermostat when you drive away from your house, and all other manner of handy location-based tricks.

    换句话说,您周围的地理围栏潜力世界值得挖掘。 您的智能手机可以提醒您在干洗店附近时进行干洗,当您开车离开家时可以调低恒温器,以及所有其他方便的基于位置的技巧。

    Now that we have a clearer picture of what geofencing is, let’s take a look at real-world applications you can start using today.

    现在我们对地理围栏有了更清晰的了解,让我们看一下您今天可​​以开始使用的实际应用程序。

    应用中的地理围栏 (Geofencing in Application)

    Geofencing has crept into a wide range of applications over the last few years and has improved everything from to-do lists to household management.The following examples are merely that, examples culled from a wide range of available applications intended to highlight the diverse ways in which application developers are using geofencing. If you have a favorite app we’ve failed to mention here, by all means jump into the comments at the bottom and share the app.

    在过去的几年中,地理围栏已经进入了广泛的应用领域,并且已经改善了从待办事项列表到家庭管理的所有内容。以下示例仅是示例,这些示例是从众多可用应用程序中挑选出来的,旨在强调哪些应用程序开发人员正在使用地理围栏。 如果您有喜欢的应用程序,我们在这里没有提及,请务必跳到底部的评论中并共享该应用程序。

    生产率 (Productivity)

    One of the most frustrating things, in regard to productivity and getting stuff done, is remembering you need to do something when you’re not in the right place to do it. If the dry cleaner is on the way home from work then it’s useful to have the process of leaving work trigger a reminder to get the dry cleaning. If you need files off a certain computer at work then it’s useful to have the reminder trigger when you arrive at work the next day. You keep forgetting to buy that adapter at the hardware store? Set a location-based reminder so the next time you’re in the store you won’t leave without it.

    关于生产力和完成工作,最令人沮丧的事情之一是,记住当您不在正确的位置进行工作时需要做某事。 如果干洗店在下班回家的路上,那么下班的过程会触发提醒以获取干洗的好处。 如果您需要在工作中的某台计算机上保存文件,那么第二天上班时让提醒触发器很有用。 您忘了在五金店买那个适配器吗? 设置基于位置的提醒,这样下次您进入商店时,就不会没有它。

    Stealing the Mona Lisa? Better set a geo-located reminder.
    偷蒙娜丽莎? 最好设置地理位置提醒。

    These kind of location-aware triggers and reminders are built into a large number of popular productivity apps. Cross-platform todo list app Todoist supports location-based reminders on both iOS and Android. Popular cross-platform service RememberTheMilk also supports location-based reminders. iPhone users who just need simple reminders without the complexity of a full task management system can also just attach a location to any item in the Reminders app.

    这些类型的位置感知触发器和提醒已内置在大量流行的生产力应用程序中。 跨平台待办事项列表应用程序Todoist在iOS和Android上均支持基于位置的提醒。 流行的跨平台服务RememberTheMilk还支持基于位置的提醒。 iPhone用户只需要简单的提醒,而无需复杂的完整任务管理系统,也可以在“提醒”应用中将位置附加到任何项目。

    智能家居控制 (Smarthome Control)

    Smarthome control is an area where geofencing really shines. After all what says “The future is now!” more than approaching your home and having the lights turn on as you walk towards the door?

    智能家居控制是地理围栏真正发挥作用的领域。 毕竟,“未来就是现在!” 不仅是您走向家中并在您走向门口时打开灯了?

    That’s not even a vaporware suggestion either as off-the-shelf products such as the previously reviewed Philips Hue system have smartphone-based geofencing built right in. You can instruct the Hue to turn your lights on and off as you come and go and/or even have them apply custom scenes to different areas of your house.

    这甚至都不是蒸气器的建议,因为诸如先前审查过的飞利浦Hue系统之类的现成产品已内置基于智能手机的地理围栏。您可以指示Hue在来来去去时打开和关闭灯,和/甚至让他们将自定义场景应用于房屋的不同区域。

    You can enjoy similar home/away detection with your heating and cooling thanks to a handy iOS app Skylark that pairs with both Nest and Honeywell smart thermostats. Android users can use IFTTT scripts or the Nest component in the Life360 app to do the same.

    得益于方便的iOS应用程序Skylark(可与Nest和Honeywell智能恒温器配合使用),您可以通过加热和冷却享受类似的居家/外出检测。 Android用户可以使用IFTTT脚本或Life360应用程序中的Nest组件执行相同操作。

    安全 (Security)

    There are a bunch of clever applications for geofencing when it comes to mobile and computer security. Android 5.0, for example, has a handy feature wherein you can disable device locking if you are within range of the “home” Wi-Fi node: No more constantly unlocking your phone when you’re just sitting around on your couch playing with it during commercial breaks.

    当涉及到移动和计算机安全性时,有许多巧妙的地理围栏应用程序。 例如,Android 5.0具有方便的功能,如果您处于“家庭” Wi-Fi节点的范围内,则可以禁用设备锁定:当您坐在沙发上玩时,不再需要不断解锁手机在商业休息期间。

    You can also set up a miniature geofence around your computer that automatically locks your computer when your phone (and it’s corresponding bluetooth radio) move away from the computer. We detail how to set up that clever little hack here.

    您还可以在计算机周围设置一个微型地理围栏,当您的手机(以及与之对应的蓝牙收音机)从计算机移开时,它将自动锁定计算机。 我们将在此处详细说明如何设置这种聪明的小技巧

    家庭追踪 (Family Tracking)

    If you have a busy family that you want to keep tabs on (like getting an alert when your kid gets home from school and forgets to call you), there are handy geofence-based solutions like the aforementioned Life360 application, available for both iOS and Android, that makes it dead simple to set up zones with corresponding notifications.

    如果您有一个忙碌的家庭想要保持关注(例如,当孩子放学回家并忘记给您打电话时收到警报),则可以使用基于地理围栏的便捷解决方案,例如上述的Life360应用程序,该解决方案可用于iOS和Android,这使得设置具有相应通知的区域变得非常简单。

    Apple’s Find My Friends app for iOS 8.0+, seen above, offers similar functionality with the ability to check locations and set location-aware alerts.

    如上所示,Apple的适用于iOS 8.0+的“查找我的朋友”应用程序提供了类似的功能,可以检查位置并设置位置感知的警报。

    使用IFTTT自己动手 (Roll Your Own with IFTTT)

    IFTTT (IF This Then That) is a recipe system that allows you to create recipes like “If I’m leaving my office turn the air conditioner on at home” or “if I’m in the house after 9AM on a weekday text my boss that I’m stuck in traffic” or whatever other recipe you can cook up.

    IFTTT (IF This Then That)是一个食谱系统,可让您创建食谱,例如“如果我要离开办公室在家中打开空调”或“如果我在工作日的上午9点之后在家里,老板“我交通阻塞”或您可以煮的其他任何食谱。

    IFTTT supports native location tracking for both Android and iOS through the official IFTTT application. To see sample recipes that take advantage of the location tracking, check out the iOS location channel and the Android location channel.

    IFTTT通过官方IFTTT应用程序支持Android和iOS的本地位置跟踪。 要查看利用位置跟踪的示例食谱,请查看iOS位置频道Android位置频道

    While using IFTTT is certainly more complicated than, say, using the simple geofencing built right into the Hue smart bulb system it offers a huge degree of flexibility as nearly any of the tens of thousands of IFTTT recipes can be adapted to work with the location app on your phone.

    虽然使用IFTTT肯定比使用Hue智能灯泡系统中内置的简单地理围栏要复杂得多,但是它提供了极大的灵活性,因为成千上万的IFTTT配方中的几乎任何一种都可以与位置应用程序配合使用在您的手机上。

    地理围栏的未来 (The Future of Geofencing)

    Although still unfamiliar to many people geofencing is a natural extension of our desire for our devices to do more (and to do more automatically) and to decrease the friction with which interact with our environment.

    尽管对于许多人来说还是不熟悉的,但是地理围栏是我们对设备做更多(并自动执行更多操作)并减少与环境相互作用的摩擦的渴望的自然延伸。

    As devices become increasingly sophisticated and more elements of our home, vehicles, and workplace enter the ever growing stable of “Internet of things” objects expect to see geofencing applied to more and more devices and environments.

    随着设备变得越来越复杂,我们的家庭,车辆和工作场所中越来越多的元素进入越来越稳定的“物联网”中,人们期望将地理围栏应用于越来越多的设备和环境。

    This increased integration could yield all sorts of novelties like workstations that power down when their owners leave for the building, coffee pots that turn on in the morning when the first coffee drinkers arrive, attic fans that whirl to life to suck in cool evening air as you drive home, garage doors that open automatically as you round the bend, and all manner of little changes that leave the computers to worry about the trivial bits while we get to focus on things more interesting than wondering if we locked the back door properly.

    集成度的提高可能带来各种新颖性,例如工作站在所有者离开建筑物时关闭电源,在第一个喝咖啡的人到来时早上打开的咖啡壶,阁楼的风扇旋转并吸吮着凉爽的夜晚空气,您开车回家,绕弯道时车库门会自动打开,以及各种微小的变化,这些变化使计算机不必担心琐碎的事情,而我们将注意力集中在比不知道是否正确锁上后门更有趣的事情上。

    翻译自: https://www.howtogeek.com/221077/htg-explains-what-geofencing-is-and-why-you-should-be-using-it/

    地理围栏

    展开全文
  • 前言.因为项目有点特殊,需要接入谷歌地图实现地理围栏,因为谷歌地图的地理围栏接口相关接口并不完善,于是就换了一个思路,利用OpenLayers来实现地理围栏 openlayers 中文地址 ...第一步肯定是用户在地图上随意画一个...

    前言.因为项目有点特殊,需要接入谷歌地图实现地理围栏,因为谷歌地图的地理围栏接口相关接口并不完善,于是就换了一个思路,利用OpenLayers来实现地理围栏 openlayers 中文地址 http://weilin.me/ol3-primer/ch02/index.html

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    `X9(1OM@MU089}IGC$C4$FA.png

    这是效果实现图,以下是思路

    1.第一步肯定是用户在地图上随意画一个圈,然后我们能获取这个圈在地图上的坐标,否则这一切并没有意义。

    参考文章 http://weilin.me/ol3-primer/ch09/09-07.html

    不过我这里对文章的代码略作改动

    var lineDraw = new ol.interaction.Draw({

    type: 'Polygon',

    source: lineLayer.getSource(), // 注意设置source,这样绘制好的线,就会添加到这个source里

    freehand: true,

    });

    注意这里的 type: 'Polygon', 和文章不一样 其他的设置样式什么的自行参考;

    改动完毕,运行一下 在 获取位置,得到效果图如下

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    image.png

    好了, 到这能正确正常的获取用户在地图上随意画的圆圈的坐标了

    2.我们要如何在地图上显示用户随意画的地理围栏

    第一步,加载地图和geojson文件。geojson文件是地图格式文件,用户加载用户之前画的地理围栏。

    在 http://geojson.io/#map 网站生成一个 geojson文件即可,随后把我们在第一步获取到的位置进行替换

    "geometry": {

    "type": "Polygon",

    "coordinates":

    [[[ ]]] //你之前获取的坐标数据

    }

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    image.png

    没什么特殊需求不要改geojson文件里面的其他内容, 只修改coordinates里面的数据就好

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    image.png

    起一个ajax获取数据 然后加载到地图上

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    image.png

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    image.png

    到这个步骤 基本上已经能正常的获取用户在地图上画的地理围栏了

    接下来 加载谷歌地图

    60e88ee1e843?tdsourcetag=s_pctim_aiomsg

    image.png

    var googleMapLayer = new ol.layer.Tile({

    source: new ol.source.XYZ({

    url: 'http://www.google.cn/maps/vt/pb=!1m4!1m3!1i{z}!2i{x}!3i{y}!2m3!1e0!2sm!3i380072576!3m8!2szh-CN!3scn!5e1105!12m4!1e68!2m2!1sset!2sRoadmap!4e0!5m1!1e0'

    })

    });

    加载谷歌地图 ,也可以加载其他地图,我是因为项目需要才加载谷歌地图

    map.once('postrender', function(event) {

    var t = this;

    console.log(layer2.getSource().getFeatures()[0].getGeometry().intersectsCoordinate([11578910.355723355, 3502000.669399493]));

    });

    监听地图加载完成,然后随意检测一个点是否在地理围栏里面

    map.on('singleclick', function(evt) {

    var coordinate = evt.coordinate;

    var hdms = ol.proj.transform(coordinate, 'EPSG:3857', 'EPSG:4326');

    var coordinate = evt.coordinate;

    var userDogColler = userindex.getClosestPoint(coordinate);

    var t = ol.proj.transform(userDogColler, 'EPSG:3857', 'EPSG:4326');

    console.log('点击的地方距离围栏多少+',jwdjs(hdms[0],hdms[1],t[0],t[1]),'+M')

    //console.log(userindex.getClosestPoint(coordinate))

    console.log(userindex.intersectsCoordinate(coordinate))

    });

    给地图添加点击事件,然后获取点击的坐标,判断到地理围栏的距离 ,这里我采用的算法是经纬度算法 jwdjs()

    function jwdjs(lat1, lng1, lat2, lng2) {

    var EARTH_RADIUS = 6378137.0; //单位M 地球的周长

    var PI = Math.PI;

    function getRad(d) {

    return d * PI / 180.0;

    }

    function getGreatCircleDistance(lat1, lng1, lat2, lng2) {

    var radLat1 = getRad(lat1);

    var radLat2 = getRad(lat2);

    var a = radLat1 - radLat2;

    var b = getRad(lng1) - getRad(lng2);

    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));

    s = s * EARTH_RADIUS;

    s = Math.round(s * 10000) / 10000.0;

    return s;

    }

    return getGreatCircleDistance(lat1, lng1, lat2, lng2)

    }

    到这基本上就能实现效果图所示的效果了 ,其他无效代码都删了

    展开全文
  • 地理围栏设计与实现

    2018-05-25 14:29:16
    地理围栏系统的设计,包括有地理围栏的删除增加,轨迹回放等功能,定位采用高德地图,数据来自于北斗!
  • 百度地理围栏jar

    2016-01-22 11:50:16
    百度地理围栏jar包
  • 前言地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。在物流配送行业应用比较广,划分每个配送网点或者商家配送的范围,提高配送员的配送效率和服务的范围。1.使用Path2D创建一...

    前言

    地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。在物流配送行业应用比较广,划分每个配送网点或者商家配送的范围,提高配送员的配送效率和服务的范围。

    1.使用Path2D创建一个多边形

    Path2D类是java.awt.geom包提供的工具包,可表示任意几何路径的简单而灵活的形状。它可以完全表示PathIterator接口可以迭代的任何路径, 包括其所有段类型和绕组规则,并且它实现了Shape接口的所有基本命中测试方法。

    使用Path2D.Float带有可表示且能使用浮点精度的数据的时候。使用Path2D.Double 对于需要双精度的准确性或范围的数据。

    先通过高德地图在线编辑一个多边形覆盖图,然后获取到有序的坐标

    8eb31ad992ce471a949f732d1ccc5d87.png

    代码示例如下:

    //传参 有序的坐标范围

    public static Path2D.Double create(List polygon) {

    //创建path2D对象

    Path2D.Double generalPath = new Path2D.Double();

    //获取有序坐标范围的第一个坐标

    PointDouble first = polygon.get(0);

    //通过移动到指定坐标(以双精度指定),将一个点添加到路径中

    generalPath.moveTo(first.getX(), first.getY());

    //删除有序坐标范围第一个

    polygon.remove(0);

    //遍历有序坐标范围后面的坐标

    for (PointDouble d : polygon) {

    // 通过绘制一条从当前坐标到新指定坐标(以双精度指定)的直线,将一个点添加到路径中。

    generalPath.lineTo(d.getX(), d.getY());

    }

    // 将几何多边形封闭

    generalPath.lineTo(first.getX(), first.getY());

    //关闭路径

    generalPath.closePath();

    return generalPath;

    }

    以上用到了的方法详解

    moveTo(double x, double y)

    通过移动到以double精度指定的指定坐标,向路径添加一个点。

    lineTo(double x, double y)

    通过从当前坐标绘制直线到以double精度指定的新指定坐标,将路径添加到路径。

    closePath()

    通过将直线绘制回最后一个坐标来关闭当前子路径moveTo。

    2.判断某个坐标是否在Path2D

    代码示例

    PointDouble point = new PointDouble(116.403322,39.920255);

    //生成好的多边形是不是包含某个坐标

    path2d.contains(point)

    以上用到了的方法详解

    contains(double x, double y)

    测试指定坐标是否在边界内Shape

    3.判断某个矩形区域是否在Path2D

    contains(PathIterator pi, double x, double y, double w, double h)

    测试指定的矩形区域是否完全位于指定的闭合边界内PathIterator

    4.使用凸包算法把指定Path2D转换成一块大的覆盖面

    凸包(Convex Hull)是一个计算几何(图形学)中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的凸组合来构造.在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。

    56ee894615ac7a5f77835ffe642f7d53.png

    代码示例:

    /**

    * 凸包算法

    *

    * @author wangnian

    */

    public class ConvexUtil {

    /**

    * 凸包算法,返回点集合中凸多边形的点集合

    *

    * @param pointList

    * @return

    */

    public static List getConvexPoint(List pointList) {

    //用于计算最终返回结果中是凸包中点的个数

    List resultList = new ArrayList<>();

    for (int i = 0; i < pointList.size(); i++) {

    for (int j = 0; j < pointList.size(); j++) {

    if (j == i) {

    //除去选中作为确定直线的第一个点

    continue;

    }

    //存放点到直线距离所使用判断公式的结果

    double[] judge = new double[pointList.size()];

    for (int k = 0; k < pointList.size(); k++) {

    double a = pointList.get(j).getX() - pointList.get(i).getY();

    double b = pointList.get(i).getX() - pointList.get(j).getX();

    double c = (pointList.get(i).getX()) * (pointList.get(j).getY()) - (pointList.get(i).getY()) * (pointList.get(j).getX());

    //根据公式计算具体判断结果

    judge[k] = a * (pointList.get(k).getX()) + b * (pointList.get(k).getY()) - c;

    }

    // 如果点均在直线的一边,则相应的A[i]是凸包中的点

    if (JudgeArray(judge)) {

    resultList.add(pointList.get(i));

    break;

    }

    }

    }

    return resultList;

    }

    /**

    * 判断数组中元素是否全部大于等于0或者小于等于0,如果是则返回true,否则返回false

    *

    * @param Array

    * @return

    */

    private static boolean JudgeArray(double[] Array) {

    boolean judge = false;

    int len1 = 0, len2 = 0;

    for (int i = 0; i < Array.length; i++) {

    if (Array[i] >= 0) {

    len1++;

    }

    }

    for (int j = 0; j < Array.length; j++) {

    if (Array[j] <= 0) {

    len2++;

    }

    }

    if (len1 == Array.length || len2 == Array.length) {

    judge = true;

    }

    return judge;

    }

    }

    5. 根据当前地图窗口查询所有相交Path2D

    根据当前地图显示范围获取到northeast东北角和southwest西南角的坐标位置,查询相交的所有Path2D

    高德地图示例地址:

    20563d6ea6ba1e23a0a71d3a6e6e4691.png

    代码示例

    //获取西南的纬度 也就是X

    double lng = southwest.getLng();

    //获取西南的经度 也就是Y

    double lat = southwest.getLat();

    //东北角的X减去西南角的X ,得到宽

    double w = northeast.getLng() - southwest.getLng();

    //东北角的Y减去西南角的Y ,得到高

    double h = northeast.getLat() - southwest.getLat();

    //判断是否相交

    Path2D.intersects(lng, lat, w, h)

    以上用到了的方法详解

    intersects(double x, double y, double w, double h)

    测试内部是否与Shape指定矩形区域的内部相交。

    提示: 以上只是一些关键的局部代码,在实际应用中,需要将所有的范围对象按照凸包算法或者其他纬度的行政区域进行分类并缓存,方便快速遍历查询。

    展开全文
  • 地理围栏.zip

    2015-04-11 17:02:59
    地理围栏的代码,只有初步的一个代码,更多的设置你们可以自行设置
  • Tile38是一个开放源代码(由MIT许可),内存中地理位置数据存储,空间索引和实时地理围栏。 它支持多种对象类型,包括纬度/经度点,边界框,XYZ磁贴,地理哈希和GeoJSON。 本自述文件是快速入门文档。 您可以在找到...
  • 目前做的程序要求做一个地理围栏,查看百度文档地理围栏的api,通过LBSTraceClient创建地理围栏,有三种状态可以触发警报:进入时触发、离开时触发、都触发。因为不好测,所以想直接创建一个围栏,然后通过自己当前...
  • 地理围栏API服务开发

    2021-01-29 07:21:20
    地理围栏API服务开发 要使用华为地理围栏服务API,需要确保设备已经下载并安装了HMS Core(APK),并将Location Kit的SDK集成到项目中。 指定应用权限 • 如果需要使用地理围栏服务API,需要在“AndroidManifest.xml...
  • 以下内容转载自totoro的文章《几何计算-基于Turf.js实现多边形的拆分及合并》作者:totoro著作权归...在物流行业中常见的使用场景是配送区域及地理围栏的绘制,常会有对已有区域进行拆分或者合并的需要,所以编辑...
  • 创建地理围栏(以marker所在位置为中心,半径默认设置为100米) 通过BroadcastReceiver监听当前位置与围栏的位置关系 实现过程: 1. 后台定位 为了最大程度的增加定位进程的存活率,百度Android定位SDK提供后台持续...
  • 流数据分析之地理围栏应用

    万次阅读 2019-06-19 19:13:27
    为了让大家对流数据分析中的地理围栏应用有更多的了解,本文将在上一篇文章的基础上详细介绍一下流数据分析的地理围栏应用。 一、 地理围栏简介 地理围栏是基于移动位置服务的一种新应用,即用...
  • 地理围栏算法解析

    2019-09-17 03:19:03
    原文地址:... 地理围栏(Geo-fencing)是LBS的一种应用,就是用一个虚拟的栅栏围出一个虚拟地理边界,当手机进入、离开某个特定地理区域,或在该区域内活 动时,手机可以接收自动通知和警告。如...
  • 插件可使用移动设备监控圆形地理围栏。 目的是通知用户是否越过监视的地理围栏的边界。 设备重启后,地理围栏仍然存在。 您不必先打开应用程序即可监视添加的地理围栏 应用范例 查看我们的示例应用程序: 使用...
  • Tile38 - 一个地理定位数据库拥有空间索引和实时地理围栏
  • PhoneGap的地理围栏和重要的位置更改监视插件。 这个Phonegap插件是由Ogonium的Dov Goldberg开发的。 根据本自述文件底部的许可证,可以在任何项目中随意使用该代码。 如果需要,我很乐意提供我的咨询服务,可以...
  • 最近开发百度地图,需要用到地理围栏的功能,下载了官方的demo后发现不能触发地理围栏的警告,查看了代码,发现官方demo中点选地图的点集合与创建围栏后回调的集合不一致, 而官方demo的神操作是在地图绘制多边形...
  • 流数据分析之地理围栏应用的范例代码和数据,流数据设置地理围栏的相关配置和可视化效果展示
  • 高德地图-地理围栏功能实现

    千次阅读 2019-01-12 13:54:19
    最近需要实现一个地理围栏相关的功能。 项目是和骑行相关的,主要是当游客或者骑友定位地址进入到对应的景点的地理围栏里面,则播报景点相关的报道语音。 接到需求之后,我开始查看高德的相关API,由于围栏是多边形...
  • 我选择使用python的requests库来进行Post从而创建地理围栏。 import json,requests url = "https://restapi.amap.com/v4/geofence/meta?key=2336963217604035ed8fd762e356d7a7" data=json.dumps({"name":"地理围栏",...
  • 流数据分析之地理围栏应用文章中用到的数据和配置的流模型文件

空空如也

空空如也

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

地理围栏