根据 Redis 的地理位置指令要求,经度应在前,纬度应在后。您提供的经纬度 30.293254,120.152755 是颠倒的。
请将经度和纬度调换位置,将 deviceTheftDTO1.setCabinetLatitude("120.1527550") 改为 deviceTheftDTO1.setCabinetLongitude("120.1527550"),将 deviceTheftDTO1.setCabinetLongitude("30.2932540") 改为 deviceTheftDTO1.setCabinetLatitude("30.2932540")。同样,在设置设备本身位置时也需要进行相应的修改。
修改后的代码如下所示:
DeviceTheftDTO deviceTheftDTO1 = new DeviceTheftDTO();
deviceTheftDTO1.setCabinetLatitude("30.2932540");
deviceTheftDTO1.setCabinetLongitude("120.1527550");
// 其他属性设置...
// 在 for 循环中对设备位置也进行相应的修改
String key = "cabinet:battery:geo";
redisTemplate.opsForGeo().add(key, locations);
这样,您就可以正确导入经纬度信息到 Redis 中了。确保按照正确顺序(经度在前,纬度在后)提供坐标值以避免出现无效的经纬度对错误。
内容由零声教学AI助手提供,问题来源于学员提问




