2bd1988ac3cf0748c9ffb24ecbb3e8104d6dfa8e.svn-base 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. function analysis () {
  2. let result = {}
  3. let args = location.search.substr(1)
  4. args = args.split('&')
  5. args.forEach(arg => {
  6. let index = arg.indexOf('=')
  7. if (~index) {
  8. result[arg.substring(0, index)] = Number(arg.substr(index + 1))
  9. }
  10. })
  11. if (!result.lat || !result.lon) {
  12. result.lat = 22.252832648721693
  13. result.lon = 113.57727389730132
  14. }
  15. result.zoom = result.zoom || 16
  16. result.pitch = result.pitch || 60
  17. result.bearing = result.bearing || 60
  18. return result
  19. }
  20. let listStatus = (() => {
  21. let args = analysis()
  22. return function () {
  23. let result = []
  24. let center = map.getCenter()
  25. args.lon = center.x
  26. args.lat = center.y
  27. args.zoom = map.getZoom()
  28. args.pitch = map.getPitch()
  29. args.bearing = map.getBearing()
  30. for (let key in args) {
  31. result.push(`${key}=${args[key]}`)
  32. }
  33. let url = location.pathname + '?' + result.join('&')
  34. history.pushState({
  35. url,
  36. title: document.title
  37. }, document.title, url)
  38. }
  39. })()
  40. function mapGoto(args, duration = 1000) {
  41. // map.animateTo({
  42. // center: [(map.getCenter().x + args.center[0]) / 2,
  43. // (map.getCenter().y + args.center[1]) / 2],
  44. // zoom: 15
  45. // }, {duration: 2000});
  46. // setTimeout(() => {
  47. map.animateTo(args, {duration});
  48. // }, 2000)
  49. }
  50. export {
  51. mapGoto,
  52. analysis,
  53. listStatus
  54. }