截流自动化的商城平台
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.

customTxMap.js 3.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. layui.define(["jquery", "form"], function (exports) {
  2. var map,markerLayer,longitudeName,latitudeName;
  3. var obj = {
  4. initMap: function (elementId,longitude=116.307484,latitude=39.984120,longitudeInputName='longitude',latitudeInputName='latitude') {
  5. longitudeName = longitudeInputName;
  6. latitudeName = latitudeInputName;
  7. //定义地图中心点坐标
  8. var center = new TMap.LatLng(latitude, longitude)
  9. //定义map变量,调用 TMap.Map() 构造函数创建地图
  10. map = new TMap.Map(document.getElementById(elementId), {
  11. center: center,//设置地图中心点坐标
  12. zoom: 17.2, //设置地图缩放级别
  13. pitch: 43.5, //设置俯仰角
  14. rotation: 45 //设置地图旋转角度
  15. });
  16. //创建并初始化MultiMarker点标记
  17. markerLayer = new TMap.MultiMarker({
  18. map: map, //指定地图容器
  19. //样式定义
  20. styles: {
  21. //创建一个styleId为"myStyle"的样式(styles的子属性名即为styleId)
  22. "myStyle": new TMap.MarkerStyle({
  23. "width": 25, // 点标记样式宽度(像素)
  24. "height": 35, // 点标记样式高度(像素)
  25. // "src": '/static/common/image/default/icon_address.png', //图片路径
  26. //焦点在图片中的像素位置,一般大头针类似形式的图片以针尖位置做为焦点,圆形点以圆心位置为焦点
  27. "anchor": { x: 16, y: 32 }
  28. })
  29. },
  30. //点标记数据数组
  31. geometries: [{
  32. "id": "1", //点标记唯一标识,后续如果有删除、修改位置等操作,都需要此id
  33. "styleId": 'myStyle', //指定样式id
  34. "position": new TMap.LatLng(latitude, longitude), //点标记坐标位置
  35. }
  36. ]
  37. });
  38. //Map实例创建后,通过on方法绑定点击事件
  39. map.on("click",obj.clickHandler)
  40. },
  41. clickHandler:function (evt) {
  42. var lat = evt.latLng.getLat().toFixed(6);
  43. var lng = evt.latLng.getLng().toFixed(6);
  44. obj.changeCoordinate(lat,lng);
  45. },
  46. changeCoordinate:function(lat,lng){
  47. //修改id为4的点标记的位置
  48. markerLayer.updateGeometries([
  49. {
  50. "id": "1",
  51. "styleId":"myStyle",
  52. "position": new TMap.LatLng(lat, lng),
  53. }
  54. ])
  55. //修改地图中心点
  56. map.setCenter(new TMap.LatLng(lat,lng));
  57. //获取地图中心点
  58. // var centerLatLng = map.getCenter();
  59. $("input[name="+longitudeName+"]").val(lng);
  60. $("input[name="+latitudeName+"]").val(lat);
  61. },
  62. searchMap:function (address) {
  63. //正逆地址解析
  64. var geocoder = new TMap.service.Geocoder();
  65. //根据指定的文字地址转换为经纬度,并同时提供结构化的省市区地址信息
  66. geocoder.getLocation({address:address}).then((res)=>{
  67. if (res.status != 0) {
  68. layui.layer.msg(res.message);
  69. console.log('获取经纬度错误:',res);
  70. return;
  71. }
  72. obj.changeCoordinate(res.result.location.lat,res.result.location.lng);
  73. }).catch((res)=>{
  74. layui.layer.msg(res.message);
  75. console.log('获取经纬度错误:',res)
  76. })
  77. }
  78. };
  79. exports("customTxMap", obj);
  80. });