Error de agregación de puntos del mapa de Gaud

Recientemente, me encontré con un problema tan metafísico cuando trabajaba en un proyecto:

Al escribir el mapa de Gaode, agregue una superposición excepto la ciudad de Jinhua para cubrir otras ciudades y no se puede hacer clic. Haga clic para obtener puntos de coordenadas en la ciudad de Jinhua. Qué negocio,

 Todo es normal aquí, el código está aquí.

const AMap = window.AMap

const state = reactive({
  mapInput: '',
  drawer: true,
  map: null as any, //地图
  district: null as any
})
const gaodeMap = () => {
  state.map = new AMap.Map('mapGaode', {
    center: [119.64351, 29.05988],
    zoom: 15,
    resizeEnable: true
  })
  state.map.setCity('金华市婺城区') //初始化显示的区域
  //带洞多边形
  new AMap.DistrictSearch({
    extensions: 'all',
    subdistrict: 0
  }).search('婺城区', function (status, result) {
    console.log('99999999')
    console.log(status, result, '----334')
    console.log('11111111')
    // 外多边形坐标数组和内多边形坐标数组
    var outer = [
      new AMap.LngLat(-360, 90, true),
      new AMap.LngLat(-360, -90, true),
      new AMap.LngLat(360, -90, true),
      new AMap.LngLat(360, 90, true)
    ]
    console.log(39)
    console.log(result)
    var holes = result.districtList[0].boundaries
    console.log(41)
    var pathArray = [outer]
    pathArray.push.apply(pathArray, holes)
    var polygon = new AMap.Polygon({
      path: pathArray,
      strokeColor: '#00eeff',
      strokeWeight: 1,
      fillColor: '#71B3ff',
      fillOpacity: 0.5
    })
    polygon.setPath(pathArray)
    state.map.add(polygon)
    console.log(1222)
  })
  //点击事件
  function showInfoClick(e) {
    console.log('您在 [ ' + e.lnglat.getLng() + ',' + e.lnglat.getLat() + ' ] 的位置单击了地图!')
    emit('mapPopups', [e.lnglat.getLng(), e.lnglat.getLat()], false)
  }
  state.map.on('click', showInfoClick)
  //地图搜索
  //输入提示
  var autoOptions = {
    input: 'tipinput',
    city: '金华'
  }
  var auto = new AMap.Autocomplete(autoOptions)
  console.log(auto)

  console.log(AMap.event.addListener)
  // AMap.event.addListener(auto, 'select', function (e) {
  //   console.log(e)
  //   placeSearch.setCity(e.poi.adcode)
  //   placeSearch.search(e.poi.name) //关键字查询查询
  // }) //注册监听,当选中某条记录时会触发
}

Un requisito de búsqueda se agrega más tarde

Esta es la API de AutoNavi. Después de seleccionarla, puede obtener las coordenadas, y luego hice un evento de puntuación aquí, cambiando el centro visual a la puntuación que obtuvo, y puse el nivel en 20

let timeoutOld: NodeJS.Timeout
const mapInputClick = (queryString: string, callback: (arg: any) => void) => {
  console.log(queryString, callback, '---获取输入方法的建议---')
  var placeSearch = new AMap.PlaceSearch({
    pageSize: 10,
    pageIndex: 1,
    city: '金华'
  }) //构造地点查询类
  placeSearch.search(state.mapInput, function (status, result) {
    console.log(status, result, '-----模糊查询')
    if (result.poiList) {
      result.poiList.pois.map((item) => {
        item.label = item.address
      })
      const results = result.poiList.pois
      clearTimeout(timeoutOld)
      timeoutOld = setTimeout(() => {
        callback(results)
        console.log(results, '模糊查询4')
      }, 1000 * Math.random())
    }
  })
}
const oldManHandleSelect = (value) => {
  //标点
  //设置zoom点击要与初始化一样,不然放大缩小会报错
  // state.map.setMaxZoom = 20
  state.map.setZoomAndCenter(15, [value.location.lng, value.location.lat]) //同时设置地图层级与中心点
  // state.map.setCenter([value.location.lng, value.location.lat])
  // state.map.setZoom(20)
  // center:,
  // zoom: 20,
  // resizeEnable: true
  // })s
  console.log(value)
}

No hay problema con las funciones, pero después de la búsqueda, hay un problema al acercar y alejar el mapa, y la biblioteca de la consola informa un error.

Se puede ver que lo que aqui reporto es culpa de VG, es decir, el polimero de punto esta fuera de servicio, aqui el editor ha pensado mucho y probado muchos metodos, pero ninguno funciona. , teniendo en cuenta que el error de escalado puede deberse a la jerarquía, debe establecerse un zoom máximo, de lo contrario habrá problemas con la confusión de polímeros.

Al mismo tiempo, debe establecer un atributo de zoom, que es un atributo para establecer el intervalo jerárquico, y es una matriz.

  var placeSearch = new AMap.PlaceSearch({
    pageSize: 10,
    pageIndex: 1,
    zooms:[3.16],
    maxZoom:18,
    city: '金华'
  }) //构造地点查询类

Supongo que te gusta

Origin blog.csdn.net/css_javascrpit/article/details/131456133
Recomendado
Clasificación