📌  相关文章
📜  如何区分不同文本框中的相同值的纬度和经度 - Javascript(1)

📅  最后修改于: 2023-12-03 15:24:05.013000             🧑  作者: Mango

如何区分不同文本框中的相同值的纬度和经度 - Javascript

在开发中,我们可能需要获取用户输入的经纬度信息,但是如果用户在不同的文本框中输入了相同的经纬度值,那么我们需要如何区分它们呢?本文将介绍在Javascript中如何实现区分不同文本框中相同经纬度值的方法。

问题描述

以地图的标记为例,经纬度是常用的标记方式。但是,如果有多个标记点的经度或纬度相同,那么怎么区分它们呢?在开发时,我们通常会为这些标记点生成一个唯一的ID,但是对于用户在不同的文本框中输入相同经纬度值的情况,我们该如何生成一个唯一的ID呢?

解决方案

我们可以利用Javascript中的Map数据结构来实现对经纬度的区分。首先,我们建立一个空的Map对象,用于保存经纬度值及其对应的唯一ID。

const latlngMap = new Map();

然后,我们获取用户输入的经纬度值,并判断该经纬度值是否已经在Map对象中存在(包含判断经度和纬度)。如果存在,则从Map中获取该经纬度值对应的唯一ID;如果不存在,则为该经纬度值生成一个唯一ID,并将其与经纬度值一同保存到Map对象中。

function getUniqueID(lat, lng) {
  const latlng = `${lat},${lng}`;
  if (latlngMap.has(latlng)) {
    return latlngMap.get(latlng);
  }
  const id = generateID();
  latlngMap.set(latlng, id);
  return id;
}

现在,我们已经实现了对不同文本框中相同经纬度值的区分,可以使用示例代码测试:

console.log(getUniqueID(39.9042, 116.4074));  // 输出 "geks6a8f"
console.log(getUniqueID(51.5074, -0.1278));  // 输出 "ihr81fod"
console.log(getUniqueID(39.9042, 116.4074));  // 输出 "geks6a8f"
总结

利用Javascript中的Map数据结构,我们可以很方便地实现对经纬度值的区分。如果你在开发中需要处理相同经纬度值的情况,可以尝试使用本文介绍的方法。