Geocoder是CesiumJS中用于搜索和解析地理位置的模块。它可以将文本地址转换为地球上的坐标,并且还可以在地球上标记所搜索的地点。
以下示例展示了如何使用Geocoder在CesiumJS中搜索地址:
// 创建Geocoder控件
var geocoder = new Cesium.Geocoder({
container: 'geocoderContainer', // HTML容器
destination: Cesium.Cartesian3.fromDegrees(-73.9857, 40.7484, 15000000), // 默认位置
scene: viewer.scene
});
// 地点被选中时的回调函数
geocoder.viewModel.destinationFound.addEventListener(function(result) {
console.log('Result', result); // 输出结果
});
container
:{String|Element} HTML容器,用于呈现Geocoderscene
:{Scene} CesiumJS场景destination
:{Cartesian3} 飞到默认位置时的目标坐标placeholder
:{String} 输入框中的占位符url
:{String} 用于解析地址的Web服务URL,默认值为“//geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer”queryParameters
:{Object} 作为查询参数提供给Web服务的可选属性autoComplete
:{Boolean} 是否自动完成,默认为truesceneModePicker
:{SceneModePicker} 是否可以选择场景模式的SceneModePickerflightDuration
:{Number} 飞行动画时长(秒)resultLimit
:{Number} 搜索结果限制geocodeInaccurateCircles
:{Boolean} 是否显示半径标记keepExpanded
:{Boolean} 是否在输入框失去焦点时保留输入框的展开状态flyToOnSelect
:{Boolean} 是否选中时飞行到目标useDirectGeocoder
:{Boolean} 是否直接使用Web服务进行解析sceneMode
:{Number} 场景模式,可选值为SceneMode.SCENE2D
,SceneMode.SCENE3D
或SceneMode.COLUMBUS_VIEW
destinationFound
:当地点被选中时触发此事件searchPerformed
:当查询被执行时触发此事件isDestroyed
:销毁控件destroy
:销毁控件flyTo
:飞行到指定的坐标geocode
:通过地点名称执行地理编码toggleOpen
:打开或关闭输入框的展开状态Geocoder是CesiumJS中搜索和解析地理位置的非常方便的工具。它可以帮助您在地球上快速查找各种地点,并将它们标记在地图上。无论是在定位酒店、餐厅,还是在查找历史地点,Geocoder都是必不可少的工具之一。