graphhopper查询经纬度相关代码
时间: 2023-07-09 17:21:58 浏览: 130
以下是一个用 GraphHopper 查询经纬度的示例代码,你可以参考其中的方法和代码:
```java
import com.graphhopper.GHResponse;
import com.graphhopper.GraphHopper;
import com.graphhopper.PathWrapper;
import com.graphhopper.routing.util.FlagEncoder;
import com.graphhopper.routing.util.HintsMap;
import com.graphhopper.routing.util.EncodingManager;
import com.graphhopper.storage.index.LocationIndex;
import com.graphhopper.storage.index.QueryResult;
import com.graphhopper.util.EdgeIteratorState;
import com.graphhopper.util.PointList;
import com.graphhopper.util.shapes.GHPoint;
public class Main {
public static void main(String[] args) {
// 加载地图数据
GraphHopper hopper = new GraphHopper().forServer();
hopper.setDataReaderFile("map.osm.pbf");
hopper.setGraphHopperLocation("graph-cache");
hopper.importOrLoad();
// 初始化LocationIndex
LocationIndex locationIndex = hopper.getLocationIndex();
// 查询经纬度
QueryResult queryResult = locationIndex.findClosest(-34.603722, -58.381592, EdgeFilter.ALL_EDGES);
GHPoint point = queryResult.getSnappedPoint();
// 获取经纬度
double latitude = point.getLat();
double longitude = point.getLon();
System.out.println(latitude + "," + longitude);
}
}
```
其中,`map.osm.pbf`是地图数据文件,`graph-cache`是GraphHopper缓存目录,`-34.603722, -58.381592`是经纬度坐标。这段代码会输出该经纬度的地名。
阅读全文