Eficiencia en el trabajo de ChatGPT utilizando el mapa de Baidu para mostrar amor por el Día del Niño en la capital (superposición de polígonos, anotación de texto, adquisición automática de latitud y longitud, función de amor)

Serie de mejora de la eficiencia laboral de ChatGPT

  1. Una exploración preliminar de la forma de mejorar la eficiencia del trabajo de ChatGPT
  2. Ingenio e instrucciones en el desarrollo de programas para mejorar la eficiencia del trabajo de ChatGPT (creación de sentencias MySQL, sentencias PHP, uso de Javascript, interacción con Python)
  3. Eficiencia de trabajo de ChatGPT para generar requisitos de desarrollo y cotizaciones y convertirlos a formato Excel
  4. ChatGPT Work Efficiency Improvement Goose Pass Solución de acoplamiento de API por lotes de desarrollo secundario (sincronización de registros de aprendizaje, sincronización de registros de usuarios, sincronización de órdenes de derechos, documentación de desarrollo)
  5. Mejora de la eficiencia del trabajo de ChatGPT usando python para desarrollar un plan práctico para acoplar la API de plataforma abierta de Baidu Maps (planificación de rutas por lotes, adquisición de puntos de interés por lotes, límite de número de avances, geocodificación por lotes)


prefacio

Como programador, combine sus habilidades profesionales y pasatiempos para producir y brindarles a los niños una variedad de contenido educativo y de entretenimiento significativo, ayudarlos a aprender y crecer en juegos y aplicaciones interesantes, y mejorar su interés por aprender y su nivel cognitivo. ¡Pruébalo hoy!


1. Preparación

(1).Preparación del entorno de comunicación ChatGPT

Debido a la comunicación constante con ChatGPT, ella me dijo muy cortésmente: You exceeded your current quota, please check yourplan and billing details.
inserte la descripción de la imagen aquí
Entonces, me dirigí a "Tongyi Qianwen":
inserte la descripción de la imagen aquí
Está bien. Siendo ese el caso, parece que definitivamente costará dinero mostrar amor, así que sigamos comunicándonos con ChatGPT.

(2) Preparación del entorno operativo del mapa de Baidu

  • Importar el archivo jsAPI del mapa de Baidu
	<script type="text/javascript" src="//api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>
  • Crear un nuevo contenedor de mapa de Baidu y botón de edición
	<div id="allmap"></div>
	<div id="control">
		<button onclick = "polyline.enableEditing();polygon.enableEditing();">开启线、面编辑功能</button>
		<button onclick = "polyline.disableEditing();polygon.disableEditing();">关闭线、面编辑功能</button>
	</div>
  • Superposición de polígono agregada
	// 百度地图API功能
	var map = new BMap.Map("allmap");
	map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);
	map.enableScrollWheelZoom();
	
	var polygon = new BMap.Polygon([
		new BMap.Point(116.387112,39.920977),
		new BMap.Point(116.385243,39.913063),
		new BMap.Point(116.394226,39.917988),
		new BMap.Point(116.401772,39.921364),
		new BMap.Point(116.41248,39.927893)
	], {
    
    strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});  //创建多边形
	map.addOverlay(polygon);   //增加多边形
  • El objetivo de prueba
    ChatGPT puede generar automáticamente los nodos de coordenadas de longitud y latitud de la cobertura de polígonos en el mapa de Baidu, ¡y tendrá éxito!
    Si tiene éxito, significa que puede cargar varias superposiciones poligonales en el mapa de Baidu como desee,

2. Comunicación abierta

inserte la descripción de la imagen aquí
Para facilitar la visualización, el problema de comunicación se muestra en forma de referencia y el efecto generado se captura directamente, de la siguiente manera:

(1) Primer intento: generar un círculo

¿Se puede generar un conjunto de coordenadas de longitud y latitud para formar una superposición poligonal circular en el mapa de Baidu?

Por supuesto, la siguiente es una matriz de coordenadas de puntos límite de polígonos correspondientes a un círculo unitario (radio 1) en el área central de Beijing (39.915, 116.404):

var path = [];
var R = 0.01; // 圆的半径,这里取0.01经纬度单位

for (var i = 0; i < 360; i++) {
    
    
  // 计算每个角度对应的经纬度坐标
  var lat = 39.915 + R * Math.sin(i * Math.PI / 180);
  var lng = 116.404 + R * Math.cos(i * Math.PI / 180);
  path.push(new BMap.Point(lng, lat));
}

Las coordenadas del punto límite de este polígono pueden usar directamente el siguiente código para dibujar el polígono en el mapa de Baidu:

// 创建多边形对象
var polygon = new BMap.Polygon(path, {
    
    
  strokeColor: '#FF0000', // 描边颜色
  fillColor: '#FF0000', // 填充颜色
  strokeWeight: 2, // 线宽
  strokeOpacity: 0.8, // 线透明度
  fillOpacity: 0.5 // 填充透明度
});

// 将多边形覆盖物添加到地图上
map.addOverlay(polygon);

Ejecute el código anterior y podrá ver una cubierta circular con (39.915, 116.404) como centro y un radio de 0,01 en el mapa de Baidu.
inserte la descripción de la imagen aquí
**Evaluación: **Es difícil de explicar en una palabra, claramente dije que es un círculo, pero ¿cómo se convirtió en un óvalo?

(2) Haz esfuerzos persistentes: regenera en un círculo

Las coordenadas de latitud y longitud generadas anteriormente no son circulares, sino elípticas. Lamento
mucho tener que regenerar las coordenadas de latitud y longitud. De hecho, hay un problema con el código anterior. La precisión generada no es lo suficientemente alta como para que los puntos límite no sean en el mismo círculo De hecho, está más cerca de la forma de una elipse. El siguiente es el código corregido para generar puntos de límite circular compuestos por coordenadas de 360 ​​puntos:

var path = [];
var R = 0.01; // 圆的半径,这里取0.01经纬度单位
var Cx = 116.404; // 中心经度
var Cy = 39.915; // 中心纬度

for (var i = 0; i < 360; i++) {
    
    
  // 计算当前角度对应的经纬度坐标
  var angle = i * Math.PI / 180;
  var x = Cx + R / Math.cos(Cy * Math.PI / 180) * Math.cos(angle);
  var y = Cy + R * Math.sin(angle);
  // 将当前点的经纬度坐标添加到数组中
  path.push(new BMap.Point(x, y));
}

Este código corregido produce un círculo que cubre las coordenadas de los puntos límite que se pueden aplicar directamente para crear objetos poligonales:

// 创建多边形对象
var polygon = new BMap.Polygon(path, {
    
    
  strokeColor: '#FF0000', // 描边颜色
  fillColor: '#FF0000', // 填充颜色
  strokeWeight: 2, // 线宽
  strokeOpacity: 0.8, // 线透明度
  fillOpacity: 0.5 // 填充透明度
});

// 将多边形覆盖物添加到地图上
map.addOverlay(polygon);

Ejecute el código anterior y podrá ver una cubierta circular con (39.915, 116.404) como centro y un radio de 0,01 en el mapa de Baidu.

inserte la descripción de la imagen aquí
**Evaluación:**La capacidad de autocrítica y superación personal de ChatGPT es realmente buena, esta vez tuvo éxito. ¡Entonces ingrese al tema y comience a mostrar amor a los niños!

(3) Muestra tus habilidades: genera un corazón

Con (39.915, 116.404) como centro, genere los datos de coordenadas de longitud y latitud de una forma de corazón

Para dibujar una cobertura poligonal de un patrón de corazón, primero es necesario generar un conjunto de datos de coordenadas de latitud y longitud de la forma del corazón. La siguiente es una función de corazón simple, que acepta las coordenadas de latitud y longitud y los parámetros de radio de un punto central, y devuelve una matriz de múltiples coordenadas de latitud y longitud, que representa una forma de corazón centrada en el punto central:

function generateHeartPath(center, radius) {
    
    
  var Cx = center.lng; // 圆心经度
  var Cy = center.lat; // 圆心纬度
  var path = [];

  for (var i = 0; i < 360; i++) {
    
    
    var angle = i * Math.PI / 180;
    var x = Cx + radius * (16 * Math.pow(Math.sin(angle), 3));
    var y = Cy - radius * (13 * Math.cos(angle) - 5 * Math.cos(2 * angle) - 2 * Math.cos(3 * angle) - Math.cos(4 * angle));
    path.push(new BMap.Point(x, y)); // 将生成的点添加到路径数组中
  }

  return path;
}

Esta función acepta dos parámetros: las coordenadas de longitud y latitud centro del centro del círculo y el radio radio de la forma del corazón. Las coordenadas de latitud y longitud del centro del círculo pueden ser un objeto BMap.Point, y el radio de la forma del corazón se puede configurar según sea necesario. Dentro de la función, se utilizan algunas fórmulas matemáticas simples para calcular las coordenadas de una serie de puntos y agregarlos a la matriz de ruta. La función devuelve un conjunto de datos de coordenadas de latitud y longitud, que se pueden aplicar directamente para crear objetos poligonales. Por ejemplo, el siguiente código crea una superposición de un corazón de amor centrado en (39.915, 116.404) y un radio de 0,02 en Baidu Maps:

// 爱心图案的圆心坐标
var center = new BMap.Point(116.404, 39.915);
// 爱心图案的半径
var radius = 0.02;
// 生成爱心的路径数据
var path = generateHeartPath(center, radius);

// 创建多边形对象
var polygon = new BMap.Polygon(path, {
    
    
  strokeColor: '#F33', // 描边颜色
  fillColor: '#F33', // 填充颜色
  strokeWeight: 2, // 线宽
  strokeOpacity: 0.8, // 线透明度
  fillOpacity: 0.5 // 填充透明度
});

//将多边形覆盖物添加到地图上
map.addOverlay(polygon);

Ejecute el código anterior y podrá ver una superposición con un patrón de corazón centrado en (39.915, 116.404) y un radio de 0,02 en el mapa de Baidu.

inserte la descripción de la imagen aquí
**Evaluación:**De repente me enamoré, pero la dirección de la forma del corazón no es lo que quiero, ¿debería cambiar la dirección?

(4) Brotes de amor: deseo hecho realidad

Vuelva a crear un patrón de corazón inverso hacia arriba y hacia abajo centrado en (39.915, 116.404) y con un radio de 0.02

Para recrear un patrón de corazón al revés y al revés, solo necesita cambiar el valor del yeje de negativo a positivo. La siguiente es la implementación del código:

// 爱心图案的圆心坐标
var center = new BMap.Point(116.404, 39.915);
// 爱心图案的半径
var radius = 0.02;
// 生成爱心的路径数据
var path = [];

for (var i = 0; i < 360; i++) {
    
    
  var angle = i * Math.PI / 180;
  var x = center.lng + radius * (16 * Math.pow(Math.sin(angle), 3));
  var y = center.lat + radius * (13 * Math.cos(angle) - 5 * Math.cos(2 * angle) - 2 * Math.cos(3 * angle) - Math.cos(4 * angle));
  path.push(new BMap.Point(x, y));
}

// 创建多边形对象
var polygon = new BMap.Polygon(path, {
    
    
  strokeColor: '#F33', // 描边颜色
  fillColor: '#F33', // 填充颜色
  strokeWeight: 2, // 线宽
  strokeOpacity: 0.8, // 线透明度
  fillOpacity: 0.5 // 填充透明度
});

//将多边形覆盖物添加到地图上
map.addOverlay(polygon);

Esta implementación es básicamente la misma que la implementación anterior, solo se usa el signo positivo al calcular las coordenadas ydel eje . Ejecute el código anterior y podrá ver una superposición con un patrón de corazón inverso centrado en (39.915, 116.404) y un radio de 0,02 en el mapa de Baidu.

inserte la descripción de la imagen aquí
**Evaluación: **Bueno, los gráficos generados en realidad tienen un fuerte sentido de "tecnología de celebridades de Internet", ¡lo cual es demasiado delgado!

(5) toque final: bendición del hogar

escribir un saludo?

¿Cuáles son las coordenadas de la parte inferior de la forma de corazón de arriba?

Las coordenadas de la parte inferior del patrón de corazón generado por el código anterior son (39.88557496508942, 116.40400000000001). Esto se debe a que el patrón del corazón es un polígono de 360 ​​puntos que se encuentra dentro de un área de cobertura de 360 ​​grados centrada en un círculo y se genera mediante una serie de cálculos trigonométricos complejos. En esta implementación concreta, calculamos un par de coordenadas de latitud y longitud en cada ángulo y las agregamos a la matriz de ruta. Finalmente, el polígono irregular resultante tiene un contorno en forma de corazón.

Debido a que las ubicaciones de estos puntos se calculan matemáticamente, sus coordenadas exactas pueden variar ligeramente de la realidad y los valores exactos pueden variar según la implementación.

    var opts = {
    
    
        position: new BMap.Point(116.40400000000001,39.88557496508942),
        offset: new BMap.Size(0, 10)//设置文本偏移量
    }
    var label = new BMap.Label('祝全国的朋友们儿童节快乐!', opts); // 创建文本标注对象
    label.setStyle({
    
    
        color: "#fff",
        fontSize: "10px",
        height: "24px",
        lineHeight: "20px",
        padding: "2px 5px",
        border: "1px solid rgba(255, 255, 255, 0.9)",
        background: "rgba(255, 0, 0, 0.9)",
        fontWeight: "bold",
        transform: 'translateX(-50%)',
        fontFamily: "微软雅黑"
    });
    map.addOverlay(label);

inserte la descripción de la imagen aquí


Resumir

(1) El código completo de la cubierta del polígono de amor.

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
	<style type="text/css">
		body, html{
      
      width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
		#allmap {
      
      height:500px; width: 100%;}
		#control{
      
      width:100%;}
	</style>
	<script type="text/javascript" src="//api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>
	<title>六一儿童节献爱心</title>
</head>
<body>
	<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
	// 百度地图API功能
	var map = new BMap.Map("allmap");
	map.centerAndZoom(new BMap.Point(116.404, 39.915), 10);
	map.enableScrollWheelZoom();
  
// 爱心图案的圆心坐标
var center = new BMap.Point(116.404, 39.915);
// 爱心图案的半径
var radius = 0.02;
// 生成爱心的路径数据
var path = [];

for (var i = 0; i < 360; i++) {
      
      
  var angle = i * Math.PI / 180;
  var x = center.lng + radius * (16 * Math.pow(Math.sin(angle), 3));
  var y = center.lat + radius * (13 * Math.cos(angle) - 5 * Math.cos(2 * angle) - 2 * Math.cos(3 * angle) - Math.cos(4 * angle));
  path.push(new BMap.Point(x, y));
}

// 创建多边形对象
var polygon = new BMap.Polygon(path, {
      
      
  strokeColor: '#F33', // 描边颜色
  fillColor: '#F33', // 填充颜色
  strokeWeight: 5, // 线宽
  strokeOpacity: 0.8, // 线透明度
  fillOpacity: 0.5 // 填充透明度
});

//将多边形覆盖物添加到地图上
map.addOverlay(polygon);
  
     var opts = {
      
      
        position: new BMap.Point(116.40400000000001,39.88557496508942),
        offset: new BMap.Size(0, 10)//设置文本偏移量
    }
    var label = new BMap.Label('祝全国的朋友们儿童节快乐!', opts); // 创建文本标注对象
    label.setStyle({
      
      
        color: "#fff",
        fontSize: "10px",
        height: "24px",
        lineHeight: "20px",
        padding: "2px 5px",
        border: "1px solid rgba(255, 255, 255, 0.9)",
        background: "rgba(255, 0, 0, 0.9)",
        fontWeight: "bold",
        transform: 'translateX(-50%)',
        fontFamily: "微软雅黑"
    });
    map.addOverlay(label);
  
</script>

(2) Los altibajos del proceso actual

Al comienzo de la prueba en el mapa de Gaode, el efecto es el siguiente:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

(3) profundamente tocado

  • ChatGPT no puede reemplazar a las personas de alto nivel, pero es muy probable que las personas con habilidades básicas sean reemplazadas;
  • ChatGPT es una herramienta. Solo mediante la comprensión de la lógica básica de una determinada industria se puede utilizar mejor y es posible realizar mejores ideas.

@tiempo de fuga a veces

Supongo que te gusta

Origin blog.csdn.net/weixin_41290949/article/details/130962754
Recomendado
Clasificación