javascript - 如何在 JS 中使用 google API 在 asp.net 中创建多边形?
问题描述
我有一个用书签保存地址的小程序,所有数据都保存在 SQL 服务器数据库中,我想做的是通过 Javascrip,创建一个多边形,我已经尝试了 google 文档,但我无法理解和它会产生一个错误,这是在 asp.net 的 windows 形式中完成的。 在此处输入图像描述
这将是制作我拥有的各种标记的脚本,现在我不知道如何添加带有颜色的多边形
<script>
//Variable global para trabajar con el MAPA
let map;
//Funcion para inicializar el mapa con un centro definido
function initMap(lat, long) {
map = new google.maps.Map(document.getElementById("ModalMapPreview"), {
center: { lat: lat, lng: long },
zoom: 15,
});
}
//Funcion encargada de ejecutarse una vez termine la carga de la pagina
$(document).ready(function () {
(function ($) {
//Función para convertir Tabla de datos en JSON
var convertTableToJson = function () {
//Se inicializa un arreglo para almacenar los regisros
var rows = [];
//Recorre cada una de las filas de la tabla gvUbicaciones o gridview
$('table#gvUbicaciones tr').each(function (i, n) {
//Se asigna fila para incertarala en arreglo
var $row = $(n);
//condición para omitir primera fila - encabezado
if (i !== 0) {
//Se incerta registro en arreglo tipado
rows.push({
idubi: $row.find('td:eq(1)').text(),
Ubicacion: $row.find('td:eq(2)').text(),
Lat: $row.find('td:eq(3)').text(),
Long: $row.find('td:eq(4)').text()
});
}
});
return rows;
};
//Función para crear los marcadores
$(function () {
//Obtenemos arreglo de registros
var markers = convertTableToJson();
//Validamos que existan registros para crear marcadores, de lo contrario inicializamos mapa sin marcadores
if (markers[0]) {
//Inicializamos mapa y centramos en el primer marcador del arreglo
// initMap(parseFloat(markers[0].Lat), parseFloat(markers[0].Long));
//initMap(parseFloat(-17.783851), parseFloat(-63.182580));
initMap(parseFloat($("#txtLat").val()), parseFloat($("#txtLong").val()));
//Recorremos la lista de marcadores y los establecemos en el mapa
$.each(markers, function (key, val) {
//Se crea un objeto con las propiedades latitud y longitud para establecerlo en la configuración del marcador
const myLatLng = { lat: parseFloat(val.Lat), lng: parseFloat(val.Long) };
//Se crea marcador con el API de google y se establece en el mapa
var marker = new google.maps.Marker({
map,
position: myLatLng,
draggable: true,
title: val.Ubicacion
});
//Plantilla para ventana de información del marcador
const contentString =
'<div id="content">' +
'<h4 >' + val.Ubicacion + '</h4>' +
'<div id="bodyContent">' +
"<p><b>idubi: </b>" + val.idubi + "<br/>" +
"<b>Ubicacion: </b>" + val.Ubicacion + "<br/>" +
"<b>Latitud: </b>" + val.Lat + "<br/>" +
"<b>Longitud: </b>" + val.Long +
"</p>" +
"</div>" +
"</div>";
//Se crea ventana de información del marcador con el API de google
const infowindow = new google.maps.InfoWindow({
content: contentString,
});
//Se establece evento para que cada vez que se haga click en el marcador se muestre la ventana de información
marker.addListener("click", () => {
infowindow.open(map, marker);
});
google.maps.event.addListener(marker, 'dragend', function (evt) {
$("#txtLat").val(evt.latLng.lat().toFixed(6));
$("#txtLong").val(evt.latLng.lng().toFixed(6));
map.panTo(evt.latLng);
});
});
} else {
//Se inicializa mapa cuando no hay registros
initMap(parseFloat(-17.783851), parseFloat(-63.182580));
}
});
})(jQuery);
});
解决方案
推荐阅读
- amazon-ecs - Amazon ECS fargate:静态 IP 地址
- loops - Ansible 结合“复杂”字典
- html - HTML等于边框宽度并强制换行
- laravel - Laravel 应用程序版本控制
- angular - 角度清除间隔不停止间隔
- wordpress - 根据自定义字段的值动态更改自定义帖子类型和表单的 URL
- ngrx - 如何在赛普拉斯 e2e 测试之前设置 NGRX 状态?
- c++ - transform_reduce & 摆脱 for 循环
- tensorflow - TensorFlow 内部 Python 错误:找不到模块
- c# - 销毁预制件后如何实例化它们?