# Click on 3d tile return wrong position

**URL:** <https://community.cesium.com/t/click-on-3d-tile-return-wrong-position/31941>\
**Category:** CesiumJS\
**Created:** [May 6, 2024, 1:28pm UTC](https://community.cesium.com/t/click-on-3d-tile-return-wrong-position/31941 "2024-05-06T13:28:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![DavidDvpt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/daviddvpt/32/14037_2.png) [@DavidDvpt](https://community.cesium.com/u/DavidDvpt)\
**Post date:** [May 6, 2024, 1:28pm UTC](https://community.cesium.com/t/click-on-3d-tile-return-wrong-position/31941/1 "2024-05-06T13:28:20Z")

</div>

Hi there,  
i’m new on Cesium, and i’m using it with Resium on a react app

i’m using 3D tiles and my goal is to insert a PointGraphic on clic location. but if the location is good without 3D layer, with it the final Entity location is wrong.

 ![Capture d’écran 2024-05-06 à 15.16.59](https://global.discourse-cdn.com/cesium/original/3X/4/5/45b07a5c6e32eb8080745233961f00c003337264.png)  
on this picture we cans see the blue pin, i’have clicked on the bottom right of the square

 ![Capture d’écran 2024-05-06 à 15.19.55](https://global.discourse-cdn.com/cesium/original/3X/3/5/35921686accb783d5a532342df504f33b2d5e4b4.png)  
and on this second one, without 3D tiles, the entity location is good

my onClick code :

```auto
  const handleMapClick = (e: any) => {
    if (viewer.current?.cesiumElement && e.position) {
      const v = viewer.current.cesiumElement;
      const ellipsoid = Ellipsoid.WGS84;
      const cartesian2Coordinates = new Cartesian2(e.position.x, e.position.y);
      const ray = v.camera.getPickRay(cartesian2Coordinates);
      if (ray) {
        const position = v.scene.globe.pick(ray, v.scene);
        if (position) {
          const positionCartographic = ellipsoid.cartesianToCartographic(position);

          const lng = Math.toDegrees(positionCartographic.longitude);
          const lat = Math.toDegrees(positionCartographic.latitude);
          dispatch(mapActions.setClicked3dPoint({ lat, lng }));
        }
      }
    }
  };

```

seems the error comes from the space between 2D and 3D tiles, and the persepctive does the rest

how can adjust the location for 3D tiles?  
thx

---

<div class="post-metadata">

**Author:** ![ZhefengJin](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/zhefengjin/32/11504_2.png) [@ZhefengJin](https://community.cesium.com/u/ZhefengJin)\
**Post date:** [May 6, 2024, 2:59pm UTC](https://community.cesium.com/t/click-on-3d-tile-return-wrong-position/31941/2 "2024-05-06T14:59:47Z")

</div>

scene.globe.pick gives point on the globe, not tileset.  
please consider using scene.pick

---

<div class="post-metadata">

**Author:** ![DavidDvpt](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/daviddvpt/32/14037_2.png) [@DavidDvpt](https://community.cesium.com/u/DavidDvpt)\
**Post date:** [May 6, 2024, 3:28pm UTC](https://community.cesium.com/t/click-on-3d-tile-return-wrong-position/31941/3 "2024-05-06T15:28:12Z")

</div>

it’s works ! thx a lot **ZhefengJin**  
here the final code for 3d click to lat/lng

```auto
  const handleMapClick = (e: any) => {
    if (viewer.current?.cesiumElement && e.position) {
      const v = viewer.current.cesiumElement;
      const ellipsoid = Ellipsoid.WGS84;
      const cartesian2 = new Cartesian2(e.position.x, e.position.y);
      const posScene = v.scene.pickPosition(cartesian2);
      
      if (posScene) {
        const positionCartographic = ellipsoid.cartesianToCartographic(posScene);

        // lat, lng from scene position
        const lng = Math.toDegrees(positionCartographic.longitude);
        const lat = Math.toDegrees(positionCartographic.latitude);
        dispatch(mapActions.setClicked3dPoint({ lat, lng }));
      }
    }
  };

```
