Geocoding Reinvented: Embracing Google & HERE for Modern Location Workflows

geocoding-reinvented-embracing-google-and-here-for-modern-location-workflows

Overview

The legacy GeoLocateAddress and GeoLocatePoint endpoints (powered by Bing Maps) have been retired for non‑enterprise users. To ensure uninterrupted, enterprise‑grade geocoding, CDXGeoData now offers parallel services on the Google Maps Platform and HERE Technologies platforms:

  • Google Maps: GeocodeGoogle, GeocodeGoogleSingle, GeocodeGoogleReverse
  • HERE Technologies: GeocodeHERE, GeocodeHERESingle, GeocodeHEREReverse

All endpoints accept your API key, an address or coordinates, and return formatted addresses with latitude/longitude in JSON, XML, or CSV.

Key Business Use Cases

1. Seamless Migration & Multi‑Engine Fallback

Switch between Google and HERE geocoders to balance cost, performance, and feature coverage—fall back automatically if one provider experiences downtime.

2. Single‑Line & Structured Address Support

Use *Single variants to parse free‑form addresses in one parameter, or structured variants to submit street, city, state/province, and postal code fields for extra precision.

3. Bidirectional Geocoding

Forward geocode addresses into coordinates and reverse geocode GPS data back into human‑readable addresses—ideal for delivery apps, asset tracking, and analytics.

Developer Spotlight: C# Code Snippet


// Generic C# geocoding example for Google & HERE
using System;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

namespace CDXGeoDataSample
{
    class Program
    {
        static async Task Main()
        {
            var apiKey = Environment.GetEnvironmentVariable("CDX_GEO_KEY");
            // Choose provider ("google" or "here")
            var provider = "google";
            // Choose mode: "", "Single", or "Reverse"
            var mode     = "Single";
            // Prepare parameters
            var address  = "1600 Amphitheatre Parkway, Mountain View, CA";
            double lat   = 34.0522, lon = -118.2437;

            string endpoint = mode == "Reverse"
                ? $"geocode{provider}Reverse?key={apiKey}&latitude={lat}&longitude={lon}&format=json"
                : mode == "Single"
                    ? $"geocode{provider}Single?key={apiKey}&address={Uri.EscapeDataString(address)}&format=json"
                    : $"geocode{provider}?key={apiKey}"
                      + $"&street={Uri.EscapeDataString("1600 Amphitheatre Parkway")}"
                      + "&city=Mountain%20View&state=CA&postalcode=94043&format=json";

            using var client   = new HttpClient { BaseAddress = new Uri("https://geodata.cdxtech.com/api/") };
            var response       = await client.GetAsync(endpoint);
            response.EnsureSuccessStatusCode();

            var json   = await response.Content.ReadAsStringAsync();
            var root   = JsonDocument.Parse(json).RootElement;
            var result = root.GetProperty("results")[0];

            var formatted = result.GetProperty("formattedAddress").GetString();
            var latitude  = result.GetProperty("latitude").GetDouble();
            var longitude = result.GetProperty("longitude").GetDouble();

            Console.WriteLine($"Address: {formatted}");
            Console.WriteLine($"Coords: {latitude}, {longitude}");
        }
    }
}
  

Sample Response (GeocodeGoogleSingle)

{
  "service": "GeocodeGoogleSingle",
  "results": [
    {
      "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
      "latitude": 37.4220,
      "longitude": -122.0841
    }
  ],
  "tokenCharge": 3
}
  

Getting Started

  1. Sign up for a free CDXGeoData account and retrieve your API key.
  2. Choose your platform and variant:
    • GeocodeGoogle / GeocodeHERESingle / etc.
  3. Invoke GET /api/geocode<Platform><Variant> with necessary parameters (address or street, city, etc., or latitude longitude for reverse).
  4. Parse the formattedAddress and coordinates from the results array.
Comments are closed