def builtin_metadata(self): meta_data = {} meta_data["workspace"] = self.datasource.workspace.name meta_data["name"] = self.kmi_name meta_data["service_type"] = "WMS" if SpatialTable.check_normal(self.spatial_type) or not self.datasource.workspace.publish_channel.sync_geoserver_data: meta_data["service_type"] = "" elif SpatialTable.check_raster(self.spatial_type): meta_data["service_type"] = "WMS" meta_data["service_type_version"] = self.datasource.workspace.publish_channel.wms_version else: meta_data["service_type"] = "WFS" meta_data["service_type_version"] = self.datasource.workspace.publish_channel.wfs_version meta_data["modified"] = (self.last_modify_time or self.last_refresh_time).astimezone(timezone.get_default_timezone()).strftime("%Y-%m-%d %H:%M:%S.%f") #bbox meta_data["bounding_box"] = self.bbox or None meta_data["crs"] = self.crs or None #ows resource meta_data["ows_resource"] = {} if meta_data["service_type"] == "WFS" and self.datasource.workspace.publish_channel.wfs_endpoint: meta_data["ows_resource"]["wfs"] = True meta_data["ows_resource"]["wfs_version"] = self.datasource.workspace.publish_channel.wfs_version meta_data["ows_resource"]["wfs_endpoint"] = self.datasource.workspace.publish_channel.wfs_endpoint if meta_data["service_type"] in ("WFS","WMS") and self.datasource.workspace.publish_channel.wfs_endpoint: meta_data["ows_resource"]["wms"] = True meta_data["ows_resource"]["wms_version"] = self.datasource.workspace.publish_channel.wms_version meta_data["ows_resource"]["wms_endpoint"] = self.datasource.workspace.publish_channel.wms_endpoint geo_settings = json.loads(self.geoserver_setting) if self.geoserver_setting else {} if geo_settings.get("create_cache_layer",False) and self.datasource.workspace.publish_channel.gwc_endpoint: meta_data["ows_resource"]["gwc"] = True meta_data["ows_resource"]["gwc_endpoint"] = self.datasource.workspace.publish_channel.gwc_endpoint return meta_data