1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
function OpenStreetMapNominatimGeocoder() {}
OpenStreetMapNominatimGeocoder.prototype.geocode = function (input) { const endpoint = "https://nominatim.openstreetmap.org/search"; const resource = new Cesium.Resource({ url: endpoint, queryParameters: { format: "json", q: input, }, });
return resource.fetchJson().then(function (results) { let bboxDegrees; return results.map(function (resultObject) { bboxDegrees = resultObject.boundingbox; return { displayName: resultObject.display_name, destination: Cesium.Rectangle.fromDegrees( bboxDegrees[2], bboxDegrees[0], bboxDegrees[3], bboxDegrees[1], ), }; }); }); };
const viewer = new Cesium.Viewer("cesiumContainer", { geocoder: new OpenStreetMapNominatimGeocoder(), });
viewer.geocoder.viewModel.searchText = "Philadelphia"; viewer.geocoder.viewModel.search();
|