📅  最后修改于: 2023-12-03 15:24:05.013000             🧑  作者: Mango
在开发中,我们可能需要获取用户输入的经纬度信息,但是如果用户在不同的文本框中输入了相同的经纬度值,那么我们需要如何区分它们呢?本文将介绍在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数据结构,我们可以很方便地实现对经纬度值的区分。如果你在开发中需要处理相同经纬度值的情况,可以尝试使用本文介绍的方法。