|
|
@@ -44,30 +44,38 @@
|
|
|
</select>
|
|
|
|
|
|
<!-- 查询附近站点 -->
|
|
|
- <select id="findNearbyStations" resultType="bus.model.dto.BStationInfoDto">
|
|
|
+ <select id="findNearbyStations" resultType="bus.model.dto.BStationInfoDto"
|
|
|
+ parameterType="bus.model.dto.NearbyRoutesDto" >
|
|
|
SELECT
|
|
|
- id,
|
|
|
- name,
|
|
|
- latitude,
|
|
|
- longitude,
|
|
|
- ROUND(
|
|
|
- 6378.137 * 2 * ASIN(
|
|
|
- SQRT(
|
|
|
- POW(SIN((#{latitude} - latitude) * PI() / 180 / 2), 2) +
|
|
|
- COS(#{latitude} * PI() / 180) * COS(latitude * PI() / 180) *
|
|
|
- POW(SIN((#{longitude} - longitude) * PI() / 180 / 2), 2)
|
|
|
- )
|
|
|
- ) * 1000
|
|
|
- , 2) AS distance
|
|
|
+ id,
|
|
|
+ name,
|
|
|
+ latitude,
|
|
|
+ longitude,
|
|
|
+ ROUND(
|
|
|
+ 6378.137 * 2 * ASIN(
|
|
|
+ SQRT(
|
|
|
+ POW(SIN((#{latitude} - latitude) * PI() / 180 / 2), 2) +
|
|
|
+ COS(#{latitude} * PI() / 180) * COS(latitude * PI() / 180) *
|
|
|
+ POW(SIN((#{longitude} - longitude) * PI() / 180 / 2), 2)
|
|
|
+ )
|
|
|
+ ) * 1000
|
|
|
+ , 2) AS distance
|
|
|
FROM b_station_info
|
|
|
- WHERE
|
|
|
- is_delete = 0
|
|
|
- AND latitude BETWEEN #{latitude} - #{radius} / 111300 AND #{latitude} + #{radius} / 111300
|
|
|
- AND longitude BETWEEN #{longitude} - #{radius} / (111300 * COS(#{latitude} * PI() / 180))
|
|
|
- AND #{longitude} + #{radius} / (111300 * COS(#{latitude} * PI() / 180))
|
|
|
- HAVING distance < #{radius}
|
|
|
+ WHERE
|
|
|
+ is_delete = 0
|
|
|
+ AND latitude BETWEEN #{latitude} - #{radius} / 111300 AND #{latitude} + #{radius} / 111300
|
|
|
+ AND longitude BETWEEN #{longitude} - #{radius} / (111300 * COS(#{latitude} * PI() / 180))
|
|
|
+ AND #{longitude} + #{radius} / (111300 * COS(#{latitude} * PI() / 180))
|
|
|
+ AND (
|
|
|
+ 6378.137 * 2 * ASIN(
|
|
|
+ SQRT(
|
|
|
+ POW(SIN((#{latitude} - latitude) * PI() / 180 / 2), 2) +
|
|
|
+ COS(#{latitude} * PI() / 180) * COS(latitude * PI() / 180) *
|
|
|
+ POW(SIN((#{longitude} - longitude) * PI() / 180 / 2), 2)
|
|
|
+ )
|
|
|
+ ) * 1000
|
|
|
+ ) <= #{radius}
|
|
|
ORDER BY distance
|
|
|
- LIMIT #{BigDistance}
|
|
|
</select>
|
|
|
|
|
|
<!-- 查询经过指定站点的路线 -->
|