要求实现附近的一些场景,如医院,酒店,等
用Java如何实现?本人毫无思路,有谁写过吗?用什么技术?
可以使用 百度地图、或者是高德地图的Web端的API实现
这需要对接,地图平台的API,比如百度地图,高德地图,腾讯地图,里面都提供的有这些功能API,
就是找附近的门店商家呗.去看看地图类api有没有,其实这种功能大众点评之类的应该有,毕竟app端有附近酒店xx等筛选条件,去找官方api.
这种直接用百度或者高德的API
redis有个GEO 的功能
这个需要结合第三方插件或源码来结合构成,单靠java肯定不行
对于这个问题,你可以选择用高德或者百度地图API,通过http协议可以获取各个地方的酒店数!谢谢,望采纳!
Elasticsearch高级之-位置坐标实现附近的人搜索
https://blog.csdn.net/m0_67155975/article/details/123608025
在一家酒店行业公司待过, 就是用百度地图提供的sdk去搞的 根据坐标然后查询范围内的酒店名称
首先,你要做的是电脑定位还是手机定位?
电脑定位可以通过IP地址取得大致位置,但是不很准确。
手机定位,可以直接调用系统GPS取得位置,根据经纬度结合地图接口,实现你要的功能。国内的百度地图、高德地图都很不错。
看看我写的LBS学习笔记,需要用到高德地图API
https://blog.csdn.net/qq_36624086/category_11622160.html
我都是用高德地图做的
通常提供当前经纬度查询,也可通过行政区模糊搜索。
我有使用过此功能,参考地图的 POI 搜索相关接口说明文档:
高德地图:https://lbs.amap.com/api/webservice/guide/api/newpoisearch
百度地图:https://lbsyun.baidu.com/index.php?title=webapi/place-suggestion-api
实现附近场景?地图展示?
public class Hotel {
private Room[][] rooms;
public Hotel(){
rooms=new Room[3][20];
for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms[i].length;j++){
if(i==0){
rooms[i][j]=new Room((i+1)*100+j+1,"经济型",true);
}
if(i==1){
rooms[i][j]=new Room((i+1)*100+j+1,"舒适型",true);
}
if(i==2){
rooms[i][j]=new Room((i+1)*100+j+1,"豪华型",true);
}
}
}
}
public void order(int roomnum){
Room room=rooms[roomnum/100-1][roomnum%100-1];
if(room.isFlag()==true){
room.setFlag(false);
System.out.println("订房成功");
}
else{
System.out.println("该房已有人入住");
}
}
public void exit(int roomnum){
Room room=rooms[roomnum/100-1][roomnum%100-1];
if(room.isFlag()==false){
room.setFlag(true);
System.out.println("退房成功");
}
else{
System.out.println("该房为空,不能再退房");
}
}
public void print(){
for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms[i].length;j++){
Room room=rooms[i][j];
System.out.print(room);
}
System.out.println();
}
}
public void searchnull(){
for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms[i].length;j++){
Room room=rooms[i][j];
if(room.isFlag()==true){
System.out.print(room.getNum()+" ");
}
}
}
}
}
public class Room extends Object{
private int num;
private boolean flag;
private String type;
public Room(){
}
public Room(int num,String type,boolean flag){
this.num=num;
this.flag=flag;
this.type=type;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String toString(){
return "["+num+","+type+","+(flag ?"空闲":"占用")+"]";
}
public boolean equals(Object obj){
if(obj==null||obj instanceof Room) return false;
if(this==obj) return true;
Room room=(Room)obj;
return this.num==room.getNum();
}
}
测试程序
import java.util.Scanner;
public class Testhotel {
public static void main(String[] args) {
Hotel hotel=new Hotel();
System.out.println("欢迎使用本酒店管理系统,请输入想要的操作");
while(true){
System.out.print("1.查询房间信息 2.订房 3.退房 4.查询空房 5.退出本系统");
Scanner key=new Scanner(System.in);
int i=key.nextInt();
if(i==1){
hotel.print();
}
else if(i==2){
System.out.println("输入房间号");
int no=key.nextInt();
hotel.order(no);
}
else if(i==3){
System.out.println("输入房间号");
int no=key.nextInt();
hotel.exit(no);
}
else if(i==4){
hotel.searchnull();
System.out.println("查询成功");
}
else if (i==5){
System.out.println("谢谢使用本系统");
return;
}
else{
System.out.println("输入有误");
}
}
}
}
参考如下代码:
java实现附近站点的功能:https://blog.csdn.net/weixin_45667896/article/details/108600034
附近的功能可以使用redis的geo,但是相关的建筑物和店铺需要调用百度地图或者腾讯地图相关接口,是一个很简单的小功能,如果是自己做附近推荐就需要考虑将商铺的经纬度录入到数据库中
Android地图SDK简介 ,
https://lbs.amap.com/api/android-sdk/summary/
看看对你有帮助麽
有图吗
学习学习