GeocoderService提供地理编码和逆地理编码服务。它可以将地址或地点名称转换为经纬度坐标(地理编码),或将经纬度坐标转换为地址或地点名称(逆地理编码)。
要使用GeocoderService,首先需要创建一个实例:
var geocoder = new Cesium.GeocoderService();
然后,可以使用geocode
方法进行地理编码。例如,可以将地址字符串传递给该方法:
var address = "北京市朝阳区朝外大街";
geocoder.geocode(address).then(function(result) {
console.log(result);
});
geocode
方法会返回一个Promise对象,该对象会在地理编码完成后返回结果。
同样,可以使用reverseGeocode
方法进行逆地理编码。例如,可以将经纬度坐标传递给该方法:
var position = Cesium.Cartesian3.fromDegrees(116.4124865512, 39.9122750679);
geocoder.reverseGeocode(position).then(function(result) {
console.log(result);
});
geocode
和reverseGeocode
方法返回的结果都是对象,包含以下属性:
displayName
:字符串,表示查询的地址或地点名称。destination
:Cartesian3对象,表示查询结果的经纬度坐标。country
:字符串,表示查询结果所在的国家。province
:字符串,表示查询结果所在的省份。city
:字符串,表示查询结果所在的城市。district
:字符串,表示查询结果所在的区县。street
:字符串,表示查询结果所在的街道。number
:字符串,表示查询结果所在的门牌号。如果查询结果不包含某个属性,则该属性的值为null。
GeocoderService默认使用Cesium Ion提供的地理编码和逆地理编码服务。但也可以通过设置选项来使用其他服务。例如,可以使用高德地图提供的服务:
var options = {
url: 'https://restapi.amap.com/v3/geocode',
key: 'your_amap_key'
};
var geocoder = new Cesium.GeocoderService(options);
选项对象包含以下属性:
url
:字符串,表示地理编码服务的URL。key
:字符串,表示访问地理编码服务的密钥(有些服务需要提供密钥,有些则不需要)。language
:字符串,表示查询结果的语言(如果服务支持多种语言)。默认为'en'(英语)。GeocoderService使用Apache License 2.0许可证。详情请参阅LICENSE文件。