gpt4 book ai didi

c# - 如何通过代码隐藏在传单中添加多个标记

转载 作者:行者123 更新时间:2023-11-30 12:55:59 25 4
gpt4 key购买 nike

我想通过代码隐藏在一张 map 上添加多个传单标记。我的C#如下:

public void setMarker(double[] lat, double[] lng)
{
string script = string.Empty;

for (int i = 0; i < lat.Length; i++)
{
script = string.Format(@"<script language=""Javascript"">
addMarker('{0}','{1}')
</script>", lat[i], lng[i]);

Page.ClientScript.RegisterStartupScript(this.GetType(), "onMapClick", script);
}
}

其中 lat 和 lng 是长度相同的数组,并保存我希望标记出现的预定坐标点。

我的 addMarker() 在 javascript 中定义为:

  function addMarker(lat, lng)
{
var myLatLng = new L.LatLng(lat, lng);
L.marker(myLatLng, { icon: greenIcon, draggable: true }).addTo(Mymap);
}

如果我从鼠标点击事件中调用相同的功能,那么我点击的每个地方都会添加标记。如何在使用我的函数时让所有标记都留在 map 上?

最佳答案

客户端脚本由其键和类型唯一标识。具有相同键和类型的脚本被认为是重复的。该页面只能注册一个具有给定类型和 key 对的脚本。

在你的情况下,我只是将对你的函数的所有调用附加到一个脚本 block ,然后注册一次(在循环之外):

StringBuilder startupScript = new StringBuilder();
startupScript.Append(@"<script language=""Javascript"">");
for (int i = 0; i < lat.Length; i++)
{
startupScript.AppendFormat(@"addMarker('{0}','{1}'); ", lat[i], lng[i]);
}
startupScript.Append(@"</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(), "onMapClick", startupScript.ToString());

关于c# - 如何通过代码隐藏在传单中添加多个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com