{"_id":"d-cesium-sdk","name":"d-cesium-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"d-cesium-sdk","version":"1.0.0","description":"Cesium.js wrapper for Vue 3 with TypeScript support","main":"./dist/cesium-vue-sdk.cjs.js","module":"./dist/cesium-vue-sdk.esm.js","unpkg":"./dist/cesium-vue-sdk.umd.js","types":"./dist/types/index.d.ts","exports":{".":{"import":"./dist/cesium-vue-sdk.esm.js","require":"./dist/cesium-vue-sdk.cjs.js","types":"./dist/types/index.d.ts"}},"scripts":{"dev":"vite","build":"vite build && vue-tsc --emitDeclarationOnly","build:lib":"vite build --mode lib","preview":"vite preview","type-check":"vue-tsc --noEmit","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx --fix","format":"prettier --write src/","prepare":"husky install","prepublishOnly":"npm run build:lib","commit":"cz"},"dependencies":{"vue":"^3.4.0"},"peerDependencies":{"cesium":"^1.137.0"},"devDependencies":{"@commitlint/cli":"^18.4.0","@commitlint/config-conventional":"^18.4.0","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.14.0","@typescript-eslint/parser":"^6.14.0","@vitejs/plugin-vue":"^4.5.0","@vue/tsconfig":"^0.5.0","cesium":"^1.137.0","commitizen":"^4.3.0","cz-conventional-changelog":"^3.3.0","eslint":"^8.55.0","eslint-config-prettier":"^9.1.0","eslint-plugin-vue":"^9.19.0","husky":"^8.0.0","lint-staged":"^15.2.0","prettier":"^3.1.0","terser":"^5.46.0","typescript":"^5.3.0","vite":"^5.0.0","vite-plugin-cesium":"^1.2.0","vite-plugin-dts":"^3.7.0","vue-tsc":"^1.8.0"},"lint-staged":{"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"keywords":["cesium","vue3","typescript","gis","3d","map"],"author":{"name":"段寒松"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Duan971231/cesium-sdk.git"},"_id":"d-cesium-sdk@1.0.0","gitHead":"7196b75070bf3eb99d64b0a65b6b4a4ed1e1f030","bugs":{"url":"https://github.com/Duan971231/cesium-sdk/issues"},"homepage":"https://github.com/Duan971231/cesium-sdk#readme","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-waF9+1YrSbOSwgdyYs8yaLDkC22WHjFGmjg2Ah1Wu3xFDYlLhaxatvC0tH7hfMP4sJygUCQjqjDfZzSqFd7s/Q==","shasum":"37c856b2865dc153c0a29162c9f557f82fb31121","tarball":"https://registry.npmjs.org/d-cesium-sdk/-/d-cesium-sdk-1.0.0.tgz","fileCount":433,"unpackedSize":13523065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH87leMw9V3wP89fnWbKq2gJYd3wU8GHHzbOtjArZrKOAiACx9S9TCplRT89Lqf/aHkBTPjrqWd5tqErrDQYlcOggA=="}]},"_npmUser":{"name":"duanhansong","email":"1530904047@qq.com"},"directories":{},"maintainers":[{"name":"duanhansong","email":"1530904047@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/d-cesium-sdk_1.0.0_1770095220167_0.1074864181949764"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-03T05:07:00.167Z","1.0.0":"2026-02-03T05:07:00.552Z","modified":"2026-02-03T05:07:00.729Z"},"maintainers":[{"name":"duanhansong","email":"1530904047@qq.com"}],"description":"Cesium.js wrapper for Vue 3 with TypeScript support","homepage":"https://github.com/Duan971231/cesium-sdk#readme","keywords":["cesium","vue3","typescript","gis","3d","map"],"repository":{"type":"git","url":"git+https://github.com/Duan971231/cesium-sdk.git"},"author":{"name":"段寒松"},"bugs":{"url":"https://github.com/Duan971231/cesium-sdk/issues"},"license":"MIT","readme":"# Cesium Vue SDK\n\nA Vue 3 + TypeScript wrapper for Cesium.js, providing a simple, type-safe API for building 3D geospatial applications.\n\n## Features\n\n- Vue 3 Composition API support\n- Full TypeScript support with type definitions\n- Entity management (Point, Polyline, Polygon, Model, Label, Billboard)\n- Primitive management\n- Camera controls\n- Coordinate conversion utilities\n- Measurement tools (distance, area)\n- Drawing tools\n- Layer management (imagery, terrain)\n- Plugin system\n- Event management\n\n## Installation\n\n```bash\nyarn add cesium-vue-sdk cesium\n```\n\n## Quick Start\n\n### Using Composition API\n\n```vue\n<template>\n  <div ref=\"cesiumContainer\" class=\"cesium-container\"></div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted } from 'vue'\nimport { useCesium } from 'cesium-vue-sdk'\n\nconst cesiumContainer = ref<HTMLElement>()\nconst { createViewer, destroyViewer } = useCesium()\n\nonMounted(() => {\n  if (cesiumContainer.value) {\n    createViewer(cesiumContainer.value, {\n      animation: false,\n      timeline: false,\n    })\n  }\n})\n\nonUnmounted(() => {\n  destroyViewer()\n})\n</script>\n\n<style>\n.cesium-container {\n  width: 100%;\n  height: 100vh;\n}\n</style>\n```\n\n### Direct API Usage\n\n```typescript\nimport {\n  createViewer,\n  createPointEntity,\n  createPolylineEntity,\n  CameraController,\n  Cesium\n} from 'cesium-vue-sdk'\n\n// Create Viewer\nconst viewer = createViewer('cesiumContainer', {\n  animation: false,\n  timeline: false,\n})\n\n// Create Point Entity\nconst point = createPointEntity({\n  position: [116.3974, 39.9093, 100],\n  color: '#FF0000',\n  pixelSize: 10,\n})\n\n// Create Polyline Entity\nconst polyline = createPolylineEntity({\n  positions: [\n    [116.3974, 39.9093, 0],\n    [116.4074, 39.9193, 0],\n  ],\n  width: 5,\n  material: '#00FF00',\n})\n\n// Camera Control\nCameraController.flyTo(viewer, {\n  destination: Cesium.Cartesian3.fromDegrees(116.3974, 39.9093, 1000),\n  duration: 3,\n})\n```\n\n## API Reference\n\n### Hooks\n\n#### useCesium()\n\nMain hook providing all Cesium functionality.\n\n```typescript\nconst {\n  viewer,              // Cesium.Viewer instance\n  createViewer,        // Create viewer\n  destroyViewer,       // Destroy viewer\n  createPoint,         // Create point entity\n  createPolyline,      // Create polyline entity\n  createPolygon,       // Create polygon entity\n  createModel,         // Create model entity\n  createLabel,         // Create label entity\n  createBillboard,     // Create billboard entity\n  removeEntity,        // Remove entity by id\n  removeAllEntities,   // Remove all entities\n  flyTo,               // Camera fly to\n  zoomIn,              // Camera zoom in\n  zoomOut,             // Camera zoom out\n  resetView,           // Reset camera view\n  startDistanceMeasurement,  // Start distance measurement\n  startAreaMeasurement,      // Start area measurement\n  stopMeasurement,           // Stop measurement\n  startDraw,                 // Start drawing\n  stopDraw,                  // Stop drawing\n} = useCesium()\n```\n\n#### useViewer()\n\nBasic viewer management hook.\n\n```typescript\nconst {\n  viewer,\n  state,\n  createViewer,\n  destroyViewer,\n  resetViewer,\n  isReady,\n  setSceneMode,\n  enableDepthTestAgainstTerrain,\n  resize,\n} = useViewer()\n```\n\n### Entity Options\n\n#### PointEntityOptions\n\n```typescript\ninterface PointEntityOptions {\n  position: Position\n  color?: ColorLike\n  pixelSize?: number\n  outlineColor?: ColorLike\n  outlineWidth?: number\n  heightReference?: Cesium.HeightReference\n}\n```\n\n#### PolylineEntityOptions\n\n```typescript\ninterface PolylineEntityOptions {\n  positions: Position[]\n  width?: number\n  material?: Cesium.MaterialProperty | ColorLike\n  clampToGround?: boolean\n}\n```\n\n#### PolygonEntityOptions\n\n```typescript\ninterface PolygonEntityOptions {\n  hierarchy: Cesium.PolygonHierarchy | Position[]\n  material?: Cesium.MaterialProperty | ColorLike\n  outline?: boolean\n  outlineColor?: ColorLike\n  height?: number\n  extrudedHeight?: number\n}\n```\n\n### Utilities\n\n#### Coordinate Conversion\n\n```typescript\nimport {\n  degreesToCartesian3,\n  cartesian3ToDegrees,\n  screenToCartesian3,\n  cartesian3ToScreen,\n  calculateDistance,\n} from 'cesium-vue-sdk'\n\n// Convert degrees to Cartesian3\nconst cartesian = degreesToCartesian3(116.4, 39.9, 100)\n\n// Convert Cartesian3 to degrees\nconst { longitude, latitude, height } = cartesian3ToDegrees(cartesian)\n\n// Calculate distance between two positions\nconst distance = calculateDistance([116.4, 39.9, 0], [116.5, 40.0, 0])\n```\n\n#### Camera Controller\n\n```typescript\nimport { CameraController, Cesium } from 'cesium-vue-sdk'\n\n// Fly to position\nCameraController.flyTo(viewer, {\n  destination: Cesium.Cartesian3.fromDegrees(116.4, 39.9, 10000),\n  duration: 3,\n})\n\n// Zoom\nCameraController.zoomIn(viewer, 1000)\nCameraController.zoomOut(viewer, 1000)\n\n// Reset view\nCameraController.resetView(viewer)\n```\n\n### Plugin System\n\n```typescript\nimport { createPlugin, usePlugin } from 'cesium-vue-sdk'\n\n// Create a custom plugin\nconst myPlugin = createPlugin(\n  'my-plugin',\n  (viewer, options) => {\n    // Plugin installation logic\n    console.log('Plugin installed', options)\n  },\n  (viewer) => {\n    // Plugin cleanup logic\n    console.log('Plugin uninstalled')\n  }\n)\n\n// Use the plugin\nusePlugin(myPlugin, { option1: 'value1' })\n```\n\n## Vite Configuration\n\n```typescript\n// vite.config.ts\nimport { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport cesium from 'vite-plugin-cesium'\n\nexport default defineConfig({\n  plugins: [vue(), cesium()],\n})\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-8be8fb59722169af1da83f8915067382"}