You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
662 lines
15 KiB
662 lines
15 KiB
function AMapWX(a) { |
|
this.key = a.key; |
|
this.requestConfig = { |
|
key: a.key, |
|
s: "rsx", |
|
platform: "WXJS", |
|
appname: a.key, |
|
sdkversion: "1.2.0", |
|
logversion: "2.0" |
|
}; |
|
this.MeRequestConfig = { |
|
key: a.key, |
|
serviceName: "https://restapi.amap.com/rest/me" |
|
} |
|
} |
|
AMapWX.prototype.getWxLocation = function(a, b) { |
|
wx.getLocation({ |
|
type: "gcj02", |
|
success: function(c) { |
|
c = c.longitude + "," + c.latitude; |
|
wx.setStorage({ |
|
key: "userLocation", |
|
data: c |
|
}); |
|
b(c) |
|
}, |
|
fail: function(c) { |
|
wx.getStorage({ |
|
key: "userLocation", |
|
success: function(d) { |
|
d.data && b(d.data) |
|
} |
|
}); |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: c.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getMEKeywordsSearch = function(a) { |
|
if (!a.options) return a.fail({ |
|
errCode: "0", |
|
errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570" |
|
}); |
|
var b = a.options, |
|
c = this.MeRequestConfig, |
|
d = { |
|
key: c.key, |
|
s: "rsx", |
|
platform: "WXJS", |
|
appname: a.key, |
|
sdkversion: "1.2.0", |
|
logversion: "2.0" |
|
}; |
|
b.layerId && (d.layerId = b.layerId); |
|
b.keywords && (d.keywords = b.keywords); |
|
b.city && (d.city = b.city); |
|
b.filter && (d.filter = b.filter); |
|
b.sortrule && (d.sortrule = b.sortrule); |
|
b.pageNum && (d.pageNum = b.pageNum); |
|
b.pageSize && (d.pageSize = b.pageSize); |
|
b.sig && (d.sig = |
|
b.sig); |
|
wx.request({ |
|
url: c.serviceName + "/cpoint/datasearch/local", |
|
data: d, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(e) { |
|
(e = e.data) && e.status && "1" === e.status && 0 === e.code ? a.success(e.data) : a.fail({ |
|
errCode: "0", |
|
errMsg: e |
|
}) |
|
}, |
|
fail: function(e) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: e.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getMEIdSearch = function(a) { |
|
if (!a.options) return a.fail({ |
|
errCode: "0", |
|
errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570" |
|
}); |
|
var b = a.options, |
|
c = this.MeRequestConfig, |
|
d = { |
|
key: c.key, |
|
s: "rsx", |
|
platform: "WXJS", |
|
appname: a.key, |
|
sdkversion: "1.2.0", |
|
logversion: "2.0" |
|
}; |
|
b.layerId && (d.layerId = b.layerId); |
|
b.id && (d.id = b.id); |
|
b.sig && (d.sig = b.sig); |
|
wx.request({ |
|
url: c.serviceName + "/cpoint/datasearch/id", |
|
data: d, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(e) { |
|
(e = e.data) && e.status && "1" === e.status && |
|
0 === e.code ? a.success(e.data) : a.fail({ |
|
errCode: "0", |
|
errMsg: e |
|
}) |
|
}, |
|
fail: function(e) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: e.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getMEPolygonSearch = function(a) { |
|
if (!a.options) return a.fail({ |
|
errCode: "0", |
|
errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570" |
|
}); |
|
var b = a.options, |
|
c = this.MeRequestConfig, |
|
d = { |
|
key: c.key, |
|
s: "rsx", |
|
platform: "WXJS", |
|
appname: a.key, |
|
sdkversion: "1.2.0", |
|
logversion: "2.0" |
|
}; |
|
b.layerId && (d.layerId = b.layerId); |
|
b.keywords && (d.keywords = b.keywords); |
|
b.polygon && (d.polygon = b.polygon); |
|
b.filter && (d.filter = b.filter); |
|
b.sortrule && (d.sortrule = b.sortrule); |
|
b.pageNum && (d.pageNum = b.pageNum); |
|
b.pageSize && (d.pageSize = b.pageSize); |
|
b.sig && (d.sig = b.sig); |
|
wx.request({ |
|
url: c.serviceName + "/cpoint/datasearch/polygon", |
|
data: d, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(e) { |
|
(e = e.data) && e.status && "1" === e.status && 0 === e.code ? a.success(e.data) : a.fail({ |
|
errCode: "0", |
|
errMsg: e |
|
}) |
|
}, |
|
fail: function(e) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: e.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getMEaroundSearch = function(a) { |
|
if (!a.options) return a.fail({ |
|
errCode: "0", |
|
errMsg: "\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570" |
|
}); |
|
var b = a.options, |
|
c = this.MeRequestConfig, |
|
d = { |
|
key: c.key, |
|
s: "rsx", |
|
platform: "WXJS", |
|
appname: a.key, |
|
sdkversion: "1.2.0", |
|
logversion: "2.0" |
|
}; |
|
b.layerId && (d.layerId = b.layerId); |
|
b.keywords && (d.keywords = b.keywords); |
|
b.center && (d.center = b.center); |
|
b.radius && (d.radius = b.radius); |
|
b.filter && (d.filter = b.filter); |
|
b.sortrule && (d.sortrule = b.sortrule); |
|
b.pageNum && (d.pageNum = b.pageNum); |
|
b.pageSize && |
|
(d.pageSize = b.pageSize); |
|
b.sig && (d.sig = b.sig); |
|
wx.request({ |
|
url: c.serviceName + "/cpoint/datasearch/around", |
|
data: d, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(e) { |
|
(e = e.data) && e.status && "1" === e.status && 0 === e.code ? a.success(e.data) : a.fail({ |
|
errCode: "0", |
|
errMsg: e |
|
}) |
|
}, |
|
fail: function(e) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: e.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getGeo = function(a) { |
|
var b = this.requestConfig, |
|
c = a.options; |
|
b = { |
|
key: this.key, |
|
extensions: "all", |
|
s: b.s, |
|
platform: b.platform, |
|
appname: this.key, |
|
sdkversion: b.sdkversion, |
|
logversion: b.logversion |
|
}; |
|
c.address && (b.address = c.address); |
|
c.city && (b.city = c.city); |
|
c.batch && (b.batch = c.batch); |
|
c.sig && (b.sig = c.sig); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/geocode/geo", |
|
data: b, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(d) { |
|
(d = d.data) && d.status && "1" === d.status ? a.success(d) : a.fail({ |
|
errCode: "0", |
|
errMsg: d |
|
}) |
|
}, |
|
fail: function(d) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: d.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getRegeo = function(a) { |
|
function b(d) { |
|
var e = c.requestConfig; |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/geocode/regeo", |
|
data: { |
|
key: c.key, |
|
location: d, |
|
extensions: "all", |
|
s: e.s, |
|
platform: e.platform, |
|
appname: c.key, |
|
sdkversion: e.sdkversion, |
|
logversion: e.logversion |
|
}, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(g) { |
|
if (g.data.status && "1" == g.data.status) { |
|
g = g.data.regeocode; |
|
var h = g.addressComponent, |
|
f = [], |
|
k = g.roads[0].name + "\u9644\u8fd1", |
|
m = d.split(",")[0], |
|
n = d.split(",")[1]; |
|
if (g.pois && |
|
g.pois[0]) { |
|
k = g.pois[0].name + "\u9644\u8fd1"; |
|
var l = g.pois[0].location; |
|
l && (m = parseFloat(l.split(",")[0]), n = parseFloat(l.split(",")[1])) |
|
} |
|
h.provice && f.push(h.provice); |
|
h.city && f.push(h.city); |
|
h.district && f.push(h.district); |
|
h.streetNumber && h.streetNumber.street && h.streetNumber.number ? (f.push(h |
|
.streetNumber.street), f.push(h.streetNumber.number)) : f.push(g.roads[0] |
|
.name); |
|
f = f.join(""); |
|
a.success([{ |
|
iconPath: a.iconPath, |
|
width: a.iconWidth, |
|
height: a.iconHeight, |
|
name: f, |
|
desc: k, |
|
longitude: m, |
|
latitude: n, |
|
id: 0, |
|
regeocodeData: g |
|
}]) |
|
} else a.fail({ |
|
errCode: g.data.infocode, |
|
errMsg: g.data.info |
|
}) |
|
}, |
|
fail: function(g) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: g.errMsg || "" |
|
}) |
|
} |
|
}) |
|
} |
|
var c = this; |
|
a.location ? b(a.location) : c.getWxLocation(a, function(d) { |
|
b(d) |
|
}) |
|
}; |
|
AMapWX.prototype.getWeather = function(a) { |
|
function b(g) { |
|
var h = "base"; |
|
a.type && "forecast" == a.type && (h = "all"); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/weather/weatherInfo", |
|
data: { |
|
key: d.key, |
|
city: g, |
|
extensions: h, |
|
s: e.s, |
|
platform: e.platform, |
|
appname: d.key, |
|
sdkversion: e.sdkversion, |
|
logversion: e.logversion |
|
}, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(f) { |
|
if (f.data.status && "1" == f.data.status) |
|
if (f.data.lives) { |
|
if ((f = f.data.lives) && 0 < f.length) { |
|
f = f[0]; |
|
var k = { |
|
city: { |
|
text: "\u57ce\u5e02", |
|
data: f.city |
|
}, |
|
weather: { |
|
text: "\u5929\u6c14", |
|
data: f.weather |
|
}, |
|
temperature: { |
|
text: "\u6e29\u5ea6", |
|
data: f.temperature |
|
}, |
|
winddirection: { |
|
text: "\u98ce\u5411", |
|
data: f.winddirection + "\u98ce" |
|
}, |
|
windpower: { |
|
text: "\u98ce\u529b", |
|
data: f.windpower + "\u7ea7" |
|
}, |
|
humidity: { |
|
text: "\u6e7f\u5ea6", |
|
data: f.humidity + "%" |
|
} |
|
}; |
|
k.liveData = f; |
|
a.success(k) |
|
} |
|
} else f.data.forecasts && f.data.forecasts[0] && a.success({ |
|
forecast: f.data.forecasts[0] |
|
}); |
|
else a.fail({ |
|
errCode: f.data.infocode, |
|
errMsg: f.data.info |
|
}) |
|
}, |
|
fail: function(f) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: f.errMsg || "" |
|
}) |
|
} |
|
}) |
|
} |
|
|
|
function c(g) { |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/geocode/regeo", |
|
data: { |
|
key: d.key, |
|
location: g, |
|
extensions: "all", |
|
s: e.s, |
|
platform: e.platform, |
|
appname: d.key, |
|
sdkversion: e.sdkversion, |
|
logversion: e.logversion |
|
}, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(h) { |
|
if (h.data.status && "1" == h.data.status) { |
|
h = h.data.regeocode; |
|
if (h.addressComponent) var f = h.addressComponent.adcode; |
|
else h.aois && 0 < h.aois.length && (f = h.aois[0].adcode); |
|
b(f) |
|
} else a.fail({ |
|
errCode: h.data.infocode, |
|
errMsg: h.data.info |
|
}) |
|
}, |
|
fail: function(h) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: h.errMsg || "" |
|
}) |
|
} |
|
}) |
|
} |
|
var d = this, |
|
e = d.requestConfig; |
|
a.city ? b(a.city) : d.getWxLocation(a, function(g) { |
|
c(g) |
|
}) |
|
}; |
|
AMapWX.prototype.getPoiAround = function(a) { |
|
function b(e) { |
|
e = { |
|
key: c.key, |
|
location: e, |
|
s: d.s, |
|
platform: d.platform, |
|
appname: c.key, |
|
sdkversion: d.sdkversion, |
|
logversion: d.logversion |
|
}; |
|
a.querytypes && (e.types = a.querytypes); |
|
a.querykeywords && (e.keywords = a.querykeywords); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/place/around", |
|
data: e, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(g) { |
|
if (g.data.status && "1" == g.data.status) { |
|
if ((g = g.data) && g.pois) { |
|
for (var h = [], f = 0; f < g.pois.length; f++) { |
|
var k = 0 == |
|
f ? a.iconPathSelected : a.iconPath; |
|
h.push({ |
|
latitude: parseFloat(g.pois[f].location.split(",")[1]), |
|
longitude: parseFloat(g.pois[f].location.split(",")[0]), |
|
iconPath: k, |
|
width: 22, |
|
height: 32, |
|
id: f, |
|
name: g.pois[f].name, |
|
address: g.pois[f].address |
|
}) |
|
} |
|
a.success({ |
|
markers: h, |
|
poisData: g.pois |
|
}) |
|
} |
|
} else a.fail({ |
|
errCode: g.data.infocode, |
|
errMsg: g.data.info |
|
}) |
|
}, |
|
fail: function(g) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: g.errMsg || "" |
|
}) |
|
} |
|
}) |
|
} |
|
var c = this, |
|
d = c.requestConfig; |
|
a.location ? b(a.location) : c.getWxLocation(a, function(e) { |
|
b(e) |
|
}) |
|
}; |
|
AMapWX.prototype.getStaticmap = function(a) { |
|
function b(e) { |
|
c.push("location=" + e); |
|
a.zoom && c.push("zoom=" + a.zoom); |
|
a.size && c.push("size=" + a.size); |
|
a.scale && c.push("scale=" + a.scale); |
|
a.markers && c.push("markers=" + a.markers); |
|
a.labels && c.push("labels=" + a.labels); |
|
a.paths && c.push("paths=" + a.paths); |
|
a.traffic && c.push("traffic=" + a.traffic); |
|
e = "https://restapi.amap.com/v3/staticmap?" + c.join("&"); |
|
a.success({ |
|
url: e |
|
}) |
|
} |
|
var c = []; |
|
c.push("key=" + this.key); |
|
var d = this.requestConfig; |
|
c.push("s=" + d.s); |
|
c.push("platform=" + d.platform); |
|
c.push("appname=" + d.appname); |
|
c.push("sdkversion=" + d.sdkversion); |
|
c.push("logversion=" + d.logversion); |
|
a.location ? b(a.location) : this.getWxLocation(a, function(e) { |
|
b(e) |
|
}) |
|
}; |
|
AMapWX.prototype.getInputtips = function(a) { |
|
var b = Object.assign({}, this.requestConfig); |
|
a.location && (b.location = a.location); |
|
a.keywords && (b.keywords = a.keywords); |
|
a.type && (b.type = a.type); |
|
a.city && (b.city = a.city); |
|
a.citylimit && (b.citylimit = a.citylimit); |
|
if(a.page && a.offset){ |
|
b.page=a.page; |
|
b.offset=a.offset ; |
|
} |
|
wx.request({ |
|
url: a.page?"https://restapi.amap.com/v3/place/text?parameters":"https://restapi.amap.com/v3/assistant/inputtips", |
|
data:b, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(c) { |
|
c && c.data && c.data.tips && a.success({ |
|
tips: c.data.tips |
|
}) |
|
}, |
|
fail: function(c) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: c.errMsg || |
|
"" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getDrivingRoute = function(a) { |
|
var b = Object.assign({}, this.requestConfig); |
|
a.origin && (b.origin = a.origin); |
|
a.destination && (b.destination = a.destination); |
|
a.strategy && (b.strategy = a.strategy); |
|
a.waypoints && (b.waypoints = a.waypoints); |
|
a.avoidpolygons && (b.avoidpolygons = a.avoidpolygons); |
|
a.avoidroad && (b.avoidroad = a.avoidroad); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/direction/driving", |
|
data: b, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(c) { |
|
c && c.data && c.data.route && a.success({ |
|
paths: c.data.route.paths, |
|
taxi_cost: c.data.route.taxi_cost || "" |
|
}) |
|
}, |
|
fail: function(c) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: c.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getWalkingRoute = function(a) { |
|
var b = Object.assign({}, this.requestConfig); |
|
a.origin && (b.origin = a.origin); |
|
a.destination && (b.destination = a.destination); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/direction/walking", |
|
data: b, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(c) { |
|
c && c.data && c.data.route && a.success({ |
|
paths: c.data.route.paths |
|
}) |
|
}, |
|
fail: function(c) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: c.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getTransitRoute = function(a) { |
|
var b = Object.assign({}, this.requestConfig); |
|
a.origin && (b.origin = a.origin); |
|
a.destination && (b.destination = a.destination); |
|
a.strategy && (b.strategy = a.strategy); |
|
a.city && (b.city = a.city); |
|
a.cityd && (b.cityd = a.cityd); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/direction/transit/integrated", |
|
data: b, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(c) { |
|
c && c.data && c.data.route && (c = c.data.route, a.success({ |
|
distance: c.distance || "", |
|
taxi_cost: c.taxi_cost || |
|
"", |
|
transits: c.transits |
|
})) |
|
}, |
|
fail: function(c) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: c.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
AMapWX.prototype.getRidingRoute = function(a) { |
|
var b = Object.assign({}, this.requestConfig); |
|
a.origin && (b.origin = a.origin); |
|
a.destination && (b.destination = a.destination); |
|
wx.request({ |
|
url: "https://restapi.amap.com/v3/direction/riding", |
|
data: b, |
|
method: "GET", |
|
header: { |
|
"content-type": "application/json" |
|
}, |
|
success: function(c) { |
|
c && c.data && c.data.route && a.success({ |
|
paths: c.data.route.paths |
|
}) |
|
}, |
|
fail: function(c) { |
|
a.fail({ |
|
errCode: "0", |
|
errMsg: c.errMsg || "" |
|
}) |
|
} |
|
}) |
|
}; |
|
module.exports.AMapWX = AMapWX;
|
|
|