Start a new topic

fix nearby POI objects' positions

Hi there!

When there are GeoObjects within the user's 50 meters perimeter or less, the markers are not in a fixed spot. I know that this is because of gps accuracy but I thought a workaround is to fix the initial position of the object so the objects don't rapidly move around.



Is there any way to resolve this issue? Close by markers are very jumpy. I wanna be able to fix their positions. The markers keep jumping around. I have recorded the issue. Here's the youtube link

Unfortunately there is no workaround for the accuracy of the compass as such. After having a look at your video I doubt that this is directly linked to the compass though. Please check your location provider implementation, seems as if your location signal is drifting away. Compass inaccuracy usually doesn't cause a jumping behaviour but a jitter.

Thanks you for the response. I was a way for a month or so from this project. When you say "location provider implementation", are you referring to "onLocationChanged" implementation? Cause I follow you example and load the data only once from my server. and render the PIOs using that data like the following: 

locationChanged: function locationChangedFn(lat, lon, alt, acc) {
    // store user's current location in World.userLocation, so you always know where user is
    World.userLocation = {
      'latitude': lat,
      'longitude': lon,
      'altitude': alt,
      'accuracy': acc
    // request data if not already present
    if (!World.initiallyLoadedData) {
      World.requestDataFromServer(lat, lon);
      World.initiallyLoadedData = true;
      console.log(lat, lon, alt, acc);
    } else if (World.locationUpdateCounter === 0) {
      // update placemark distance information frequently, you max also update distances only every 10m with some more effort

    // helper used to update placemark information every now and then (e.g. every 10 location upadtes fired)
    World.locationUpdateCounter = (++World.locationUpdateCounter % World.updatePlacemarkDistancesEveryXLocationUpdates);

  I appreciate if you can guide me to the right direction. 

As a side note, I went ahead and modified 08_BrowsingPois_5_NativeDetailScreen example and added a new location to the returned data from your servers with a location near my current location (77 meters away) and I noticed the same issue. I understand that there might be some limitations but has there been any workaround this issue? Cause I'm pretty sure this limitation could hurt a lot apps of this nature. Maybe Image recognition???

Thanks Wikitude team

Hi again,

The "LocationProvider" is the native iOS/Android implementation of fetching user's location. You may e.g. fetch GPS coordinates and call architectView.setLocation(lat, lon, alt, acc). 

As a best practice for iOS: No action required. Wikitude SDK uses iOS in built Location Service. Although: In case you want a special altitude you may set them programmatically by using setLocation.

For Android: SDK Samples use a rudimentary implementation, just to avoid having GooglePlay Services as project dependency in. As a best practice for Geo-AR it is recommended to make use of Google Location Service, which basically handles all those GPS/WiFi/Network positioning for you. You have to add to your project's build.gradle, check out sample implementation of Google to then execute Wikitude's architectView.setLocation properly.
For you understanding: The JS callbacks fire on every setLocation call in native environment. In case positioning is for some reason inaccurate, even Google's and Apple's default implementation can't help.

All of the mentioned things above do not affect the compass accuracy at all. As you wrote in your previous post: In order to achieve a precise positioning in the room, Computer Vision is required. Have a look at the instant tracking samples and check whether this could be an option for you.

Best regards,

Best regards,

Login or Signup to post a comment