I need to calculate latitude and longitude from street address (location)…
Does anybody do that? Or does anybody can tell me how to do that?


I use Google Maps for this, as it is free and well-documented. You have to sign up and get a key which enables you to do an HTTP post that brings back XML (it might be JSON, I don’t recall) which includes, among other things, the point coordinates. HTH,


Assuming you need to support commercial use at production volumes, I don’t think the Google APIs and licensing agreement would meet the requirement.

You also need to determine the level of accuracy of geocoding that will meet your requirements. If you are trying to find the nearest store to a consumer you need a lower level of geocoding accuracy than if you are attempting to assign the correct tax codes or dispatch emergency responders.

Free providers often use the US Census Bureau “Tiger” data sets. Those are adequate for purposes that don’t require high degrees of accuracy.

Vendors such as MapInfo (owned by Pitney-Bowes) provide java and web services APIs that allow you to geocode addresses quickly and accurately. Oracle 9i or later with the Spatial Analysis Engine option will also do this.

For any geocoding tool, you also need to purchase any underlying street level database for the target countries. Typical vendors of these data sets are Teleatlas (now being acquired by TomTom), Navteq (being acquied by Nokia). Pitney-Bowes who formerly focused on postage meter hardware has been acquiring several geocoding and address standardization vendors and should be on any short list of vendors in this space.


Other resources:


Let we suppose I find appropriate provider (for example, ViaMichelinMaps).
i am a quite new in WM programming, so i have a few question:

  1. I use pub.client:http service: use HTTP POST (because, Geocoding API requires HTTP POST)…but, what about a key which i get from viaMichelinMaps? I am not quite sure where do I put this(and why)? does it related to pub.synchronization.xref:getCanonicalKey or I put that key somewhere else?
  2. do I need to use(develop) some specific services or there is can be just pub.client:http which allows me access to appropriate URL(viaMichelin) and gives me coordinate for my xml request?

Thank you a lot…

If the ViaMichelinMaps provides an HTTP API, then you would use pub.client:HTTP to post the appropriate request after you build up the request string or XML document that they require.

As for how to provide them with the key, that should be stored in a configuration file (assuming you have one key that covers any call to their methods). Retrieve the key from the config file and use it when you build the request.

As for how-to’s on config files and building XML documents or strings from IS doc types, there are literally hundreds of posts on those topics in the Flow and Java services forum here on wMUsers.


As I suspected, ViaMichelin also provides a web services interface which would allow you to use pub.soapHTTP to consume their services. You could use the Web Services Connector (IS 6.5 and older) or Web Services Descriptor / consumer mode (IS 7.1 and later) to generate a Flow which will serve as a starting point for your solution.


I use pub.client:http service to submet data to appropriate url; this service return me bytes parameter (along the other parameter), which i am passing to the input bytes parameter of pub.string:bytesToString…But, when I call pub.string:BytesToString service to turn the byte into the string (which I need to do because I need to make the document from xml string) , I get the empty output from that service.
Can anyone help me? (the other input parameter is ‘encoding’, but i don’t pass nothing to that parameter)