123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- window.onLoad = function () {
- var map = new AMap.Map('container');
- }
- var url = 'https://webapi.amap.com/maps?v=1.4.15&key=c2df9f4026e98b41962148c1703d8f33&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.Geocoder,AMap.DistrictSearch&callback=onLoad';
- var jsapi = document.createElement('script');
- jsapi.type = "text/javascript";
- jsapi.src = url;
- document.head.appendChild(jsapi);
- let times = setInterval(() => {
- try {
- if (!!AMap) {
- const s = document.createElement('script');
- s.type = "text/javascript";
- s.src = 'https://webapi.amap.com/ui/1.1/main.js';
- document.head.appendChild(s);
- clearInterval(times)
- }
- } catch { }
- }, 1000)
- /**
- * 调用高德地图执行模糊查询
- * @param {Number} page 当前页
- * @param {String} inputval 关键字
- * @param {Function} cb 回调函数
- * @param {Boolean} isMark 是否在地图上标记点
- */
- function AmapSearch(page, inputval, cb, isMark) {
- var keywords = inputval;
- AMap.plugin('AMap.PlaceSearch', function () {
- var autoOptions = {
- city: VagueQueryUrl,
- citylimit: true,
- pageIndex: page
- }
- var placeSearch = new AMap.PlaceSearch(autoOptions);
- placeSearch.search(keywords, function (status, result) {
- if (status != "complete") {
- return
- }
- var datas = result.poiList;
- let count = datas.count;
- let crupage = datas.pageIndex;
- let arr = datas.pois;
- var pointData = [];
- var returnObjectList = [];
- for (let i = 0; i < arr.length; i++) {
- const element = arr[i];
- var xy = [];
- var x = element.location.lng; //经度
- var y = element.location.lat; // 纬度
- x = handle_x(x);
- y = handle_y(y);
- xy.push(x);
- xy.push(y);
- var returnObject = new Object();
- returnObject.id = element.id;
- returnObject.text = element.name;
- returnObject.address = element.address;
- returnObject.XY = xy;
- var marksData = {
- "json": xy
- };
- pointData = pointData.concat(marksData);
- returnObjectList.push(returnObject);
- }
- var symbol = new PictureMarkSymbolArgs();
- symbol.url = "images/amap_l_gray.png";
- symbol.height = 36;
- symbol.width = 36;
- symbol.yoffset = 15;
- symbol.xoffset = 3;
- if (isMark) {
- createMarkLayer(pointData, "vagueQueryLyr", symbol);
- }
- var resDatasObj = {
- keywords: keywords,
- page: crupage,
- count: count,
- list: returnObjectList
- }
- cb(resDatasObj);
- })
- })
- }
- // RoadInfoSearch()
- function RoadInfoSearch() {
- AMap.plugin('AMap.RoadInfoSearch', function () {
- var autoOptions = {
- city: VagueQueryUrl,
- pageSize: 100,
- pageIndex: 1
- }
- var roadInfoSearch = new AMap.RoadInfoSearch(autoOptions);
- roadInfoSearch.crossInfoSearchByCrossId("", function (status, result) {
- console.log(status, result);
- })
- })
- }
- //经度转墨卡托
- function handle_x(x) {
- return (x / 180.0) * 20037508.34;
- }
- //纬度度转墨卡托
- function handle_y(y) {
- if (y > 85.05112) {
- y = 85.05112;
- }
- if (y < -85.05112) {
- y = -85.05112;
- }
- y = (Math.PI / 180.0) * y;
- var tmp = Math.PI / 4.0 + y / 2.0;
- return 20037508.34 * Math.log(Math.tan(tmp)) / Math.PI;
- }
- /**
- * 获取行政区域;
- * @param {String} val 行政区域名
- * @param {Function} cb 回调函数
- */
- function getExtent(val, cb) {
- if (!val) return;
- var AmapCityBoundaries = {};
- AMap.plugin('AMap.DistrictSearch', function () {
- var districtSearch = new AMap.DistrictSearch({
- // 关键字对应的行政区级别,country表示国家
- level: 'city',
- // 显示下级行政区级数,1表示返回下一级行政区
- subdistrict: 1,
- extensions: "all"
- })
- // 搜索所有省/直辖市信息
- districtSearch.search(val, function (status, result) {
- let initWkid = 2360; // 默认xian80坐标系
- //巴里坤的lessid 巴里坤的层级和坐标系
- let blklessid = "912588c2a65543dca846";
- let getblklessid = JSON.parse(sessionStorage.getItem("account")).lesseeId;
- if (blklessid === getblklessid) {
- initWkid = 102100;
- }
- // 查询成功时,result即为对应的行政区信息
- if (status == "complete") {
- let cruExtent = result.districtList[0].center;
- AmapCityBoundaries.type = "point";
- AmapCityBoundaries.x = handle_x(cruExtent.lng);
- AmapCityBoundaries.y = handle_y(cruExtent.lat);
- AmapCityBoundaries.spatialReference = { "wkid": initWkid };
- cb(AmapCityBoundaries);
- } else {
- }
- })
- })
- }
- // 高德测量面积接口
- function AmapGetArea(paths, callback) {
- var area = AMap.GeometryUtil.ringArea(paths);
- callback(area);
- }
|