Converteren van British National Grid (27700) naar WGS84 (4326) naar Web Mercator (102100)

Ik ben een webtoepassing aan het ontwikkelen die ArcGIS gebruikt om een kaart met behulp van JavaScript.

We are holding all our data in MS SQL Server 2008 as Easting/Northing against the British National Grid. Unfortunately ESRI needs the data plotted to Web Mercator.

Dus ik heb uiteindelijk Proj.Net gebruikt voor de conversie van het British National Grid (27700) naar WGS84 (4326)

Then for the WGS84 (4326) to Web Mercator (102100) conversion I used the code in this article.

Dit geeft me bruikbare gegevens binnen ESRI, maar de geplotte punten zijn niet helemaal op de juiste plaats. Het lijkt erop dat ik lijd aan de verschuiving omdat het gegeven niet is veranderd. Dit bericht suggereert dat Proj.Net de nulpuntverschuiving kan corrigeren door de TOWGS84 parameter, maar ik begrijp niet wat dit betekent.

Ik zou liever een C# -bibliotheek of -code hebben die in een snelle, eenvoudige conversie van British National Grid aan Web Mercator kwam. Als ik echter door hoepels moet springen, doe ik dat, maar ik kan wat extra begeleiding gebruiken

1
U kunt er beter aan doen om uw brongegevens opnieuw te projecteren naar WGS84 (in een andere database-instance) - hebt u dit in het verleden al gedaan - welke OS-gegevenssets gebruikt u?
toegevoegd de auteur Erik Öjebo, de bron
@Mapperz Ik ben blij dat ik opnieuw kan projecteren in de database. Kan dit met de ingebouwde SQL Server 2008-hulpmiddelen voor ruimtelijke gegevens?
toegevoegd de auteur nitro2k01, de bron

2 antwoord

Ten eerste moet u weten dat ESRI ondersteuning biedt voor twee projecties van web mercator:

  1. 'WGS 1984 Web Mercator' (102113), gelijk aan 3785.
  2. 'WGS 1984 Web Mercator extra bol' (102100), wat overeenkomt met 3857.

(EPSG: 3857 is de up-to-date code voor Google's EPSG: 900913.)

Aangezien u ESRI ArcGIS heeft, moet het proces een enkele transformatie zijn (geen twee) en hebt u geen aanvullende bibliotheek nodig.

ArcToolBox -> Data Management Tools -> Projections and Transformations -> Feature -> Project

... then select you data (input coordinate system should be detected as OSGB) and set your output coordinate system to Projected Coordinate Systems -> World -> WGS 1984 Web Mercator (Auxiliary Sphere)

... en de klus is geklaard (er is ook een grootschalige re-projectie tool). Of als u een handige toolkit wilt en als u ESRI niet wilt gebruiken, probeer dan OGR2OGR .

1
toegevoegd
Je zou GDAL/OGR kunnen proberen - het is gratis
toegevoegd de auteur Nick, de bron
Bedankt @ sylvester-sneekly - hoewel ik geen toegang heb tot de ERSI-bureaubladhulpmiddelen, doe ik al mijn werk met hun eenvoudige JavaScript-toewijzingstool die meestal wordt gebruikt voor de presentatie van de gegevens
toegevoegd de auteur nitro2k01, de bron

Als uw startdatum OSGB 1936 (EPSG: 27700) is, denk ik niet dat u Proj.Net voor uw conversie kunt gebruiken. Als je naar de code van anderen kijkt op de pagina Discussies, lijkt het erop dat Proj.Net slechts een eenvoudige nulpuntverschuiving toepast op basis van de parameter "TOWGS84". Deze parameter is ingesteld in de Bekende tekst (WKT) van uw startdatum. Een "TOWGS84" -parameter bestaat alleen in de WKT als u een eenvoudige transformatie kunt uitvoeren vanaf uw startdatum naar WGS84.

Getting from OSGB1936 -> WGS84 is a two-step process where you have to convert OSGB1936 to ETRS89, then from ETRS89 to WGS84. (see EPSG:1681)

Je zou denken dat je in staat zou moeten zijn om het British National Grid te nemen, de XY's met enige waarde te manipuleren en de Web Mercator XY's te krijgen, maar de wiskunde is gewoon niet zo eenvoudig.

1
toegevoegd