| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | import com.panzhihua.service_community.model.dos.ComActWorkGuideDO; |
| | | import com.panzhihua.service_community.model.dos.ComActWorkGuideMaterialDO; |
| | | import com.panzhihua.service_community.service.ComActWorkGuideService; |
| | | import net.sf.json.xml.XMLSerializer; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.BufferedReader; |
| | | import java.io.IOException; |
| | | import java.io.InputStreamReader; |
| | | import java.net.MalformedURLException; |
| | | import java.net.URL; |
| | | import java.net.URLConnection; |
| | | import java.text.DecimalFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | vo.setAddress(comActDO.getAddress()); |
| | | vo.setPhone(comActDO.getContactsPhone()); |
| | | } |
| | | List<String> list = getCoordinate(vo.getAddress()); |
| | | if (list !=null && list.size() > 0){ |
| | | vo.setLon(list.get(0)); |
| | | vo.setLat(list.get(1)); |
| | | } |
| | | // List<String> list = getCoordinate(vo.getAddress()); |
| | | // if (list !=null && list.size() > 0){ |
| | | // vo.setLon(list.get(0)); |
| | | // vo.setLat(list.get(1)); |
| | | // } |
| | | List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() |
| | | .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); |
| | | workGuideMaterialDOS.forEach(workGuideMaterialDO -> { |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | // 调用百度地图API根据地址,获取坐标 |
| | | public static List<String> getCoordinate(String address) { |
| | | List<String> list = new ArrayList<>(); |
| | | if (address != null && !"".equals(address)) { |
| | | address = address.replaceAll("\\s*", "").replace("#", "栋"); |
| | | String url = "http://api.map.baidu.com/geocoder/v3/?address=" + address + "&output=json&ak=" + AK; |
| | | String json = loadJSON(url); |
| | | // json = "{" + json; |
| | | // json = json + "}"; |
| | | if (json != null && !"".equals(json)) { |
| | | XMLSerializer xmlSerializer = new XMLSerializer(); |
| | | //将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识) |
| | | String result = xmlSerializer.read(json).toString(); |
| | | JSONObject obj = JSONObject.parseObject(json); |
| | | if ("0".equals(obj.getString("status"))) { |
| | | double lng = obj.getJSONObject("result").getJSONObject("location").getDouble("lng"); // 经度 |
| | | double lat = obj.getJSONObject("result").getJSONObject("location").getDouble("lat"); // 纬度 |
| | | DecimalFormat df = new DecimalFormat("#.######"); |
| | | list.add(df.format(lng)); |
| | | list.add(df.format(lat)); |
| | | return list; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static String loadJSON(String url) { |
| | | StringBuilder json = new StringBuilder(); |
| | | try { |
| | | URL oracle = new URL(url); |
| | | URLConnection yc = oracle.openConnection(); |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8")); |
| | | String inputLine = null; |
| | | while ((inputLine = in.readLine()) != null) { |
| | | json.append(inputLine); |
| | | } |
| | | in.close(); |
| | | } catch (MalformedURLException e) {} catch (IOException e) {} |
| | | return json.toString(); |
| | | } |
| | | // // 调用百度地图API根据地址,获取坐标 |
| | | // public static List<String> getCoordinate(String address) { |
| | | // List<String> list = new ArrayList<>(); |
| | | // if (address != null && !"".equals(address)) { |
| | | // address = address.replaceAll("\\s*", "").replace("#", "栋"); |
| | | // String url = "http://api.map.baidu.com/geocoder/v3/?address=" + address + "&output=json&ak=" + AK; |
| | | // String json = loadJSON(url); |
| | | //// json = "{" + json; |
| | | //// json = json + "}"; |
| | | // if (json != null && !"".equals(json)) { |
| | | // XMLSerializer xmlSerializer = new XMLSerializer(); |
| | | // //将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识) |
| | | // String result = xmlSerializer.read(json).toString(); |
| | | // JSONObject obj = JSONObject.parseObject(json); |
| | | // if ("0".equals(obj.getString("status"))) { |
| | | // double lng = obj.getJSONObject("result").getJSONObject("location").getDouble("lng"); // 经度 |
| | | // double lat = obj.getJSONObject("result").getJSONObject("location").getDouble("lat"); // 纬度 |
| | | // DecimalFormat df = new DecimalFormat("#.######"); |
| | | // list.add(df.format(lng)); |
| | | // list.add(df.format(lat)); |
| | | // return list; |
| | | // } |
| | | // } |
| | | // } |
| | | // return null; |
| | | // } |
| | | // |
| | | // public static String loadJSON(String url) { |
| | | // StringBuilder json = new StringBuilder(); |
| | | // try { |
| | | // URL oracle = new URL(url); |
| | | // URLConnection yc = oracle.openConnection(); |
| | | // BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8")); |
| | | // String inputLine = null; |
| | | // while ((inputLine = in.readLine()) != null) { |
| | | // json.append(inputLine); |
| | | // } |
| | | // in.close(); |
| | | // } catch (MalformedURLException e) {} catch (IOException e) {} |
| | | // return json.toString(); |
| | | // } |
| | | |
| | | } |