如何选择经度和纬度返回特定位置javascript



好的,我有来自xml文件的数据,并将其解析为json对象看起来像这个

1884 {
FHRSID: { '$t': '184564' },
LocalAuthorityBusinessID: { '$t': 'PI/000200989' },
BusinessName: { '$t': 'Zorba Grill Restaurant' },
BusinessType: { '$t': 'Restaurant/Cafe/Canteen' },
BusinessTypeID: { '$t': '1' },
AddressLine1: { '$t': '42 Market Place' },
AddressLine2: { '$t': 'Willenhall' },
AddressLine3: { '$t': 'Walsall' },
AddressLine4: { '$t': 'West Midlands' },
PostCode: { '$t': 'WV13 2AA' },
RatingValue: { '$t': '4' },
RatingKey: { '$t': 'fhrs_4_en-GB' },
RatingDate: { '$t': '2019-11-21' },
LocalAuthorityCode: { '$t': '433' },
LocalAuthorityName: { '$t': 'Walsall' },
LocalAuthorityWebSite: {
'$t': 'http://www.walsall.gov.uk/index/environment/food_production_and_quality.htm'
},
LocalAuthorityEmailAddress: { '$t': 'environmentalhealth@walsall.gov.uk' },
Scores: {
Hygiene: { '$t': '0' },
Structural: { '$t': '0' },
ConfidenceInManagement: { '$t': '10' }
},
SchemeType: { '$t': 'FHRS' },
NewRatingPending: { '$t': 'False' },
Geocode: {
Longitude: { '$t': '-2.05513900000000' },
Latitude: { '$t': '52.58389000000000' }
}

我想选择某个经度和某个纬度之间的范围,但我只能将一个值或所有值打印到控制台,我的代码看起来像这个

fs.readFile( "./FHRS433en-GB.xml", function(err, data) {
const xmlObj = xmlParser.toJson(data, {reversible: true, object: true})
const estDetail = xmlObj["FHRSEstablishment"]['EstablishmentCollection']['EstablishmentDetail']
const objProps = (obj) => {
for (let val in obj) {           
console.log(val, obj[val]);
};
};

for (let i=0;i < estDetail.length;i++) {
let lonGitude = estDetail[i]['Geocode']['Longitude'];
let laTitude = estDetail[i]['Geocode']['Latitude'];
if (laTitude <= 52.5876183 && Latitude >= 52.5756329) {
// console.log(estDetail);
}
}
objProps(estDetail);
});

当输出时,我不知道如何选择我想要的信息前面的纬度:{'$t':'52.58389000000000'}我不确定它是否会改变我调用数据的方式。任何有帮助的

此外,我还需要(fs(和(xml2json(作为旁注

xml2json写入文本属性(如果未在$t键中进行其他配置(。您还应该使用parseFloat来转换字符串。

for (let i = 0; i < estDetail.length; i++) {
let longitude = parseFloat(estDetail[i]["Geocode"]["Longitude"]["$t"]);
let latitude = parseFloat(estDetail[i]["Geocode"]["Latitude"]["$t"]);
if (latitude <= 52.5876183 && latitude >= 52.5756329) {
console.log(estDetail);
}
}

最新更新