Geocoding at last!

On Sunday night we silently updated the Google Maps API to include geocoding, our #1 most requested feature by developers. It took just 4 hr 32 min 19 sec for curious developers (Mike Williams in this case) to discover it in our new JavaScript files.

The Maps API provides two ways to access the geocoder. You can talk to our geocode servers directly via HTTP request, or you can have the JavaScript do the dirty work for you from the browser. Some cool features of our geocoder are:

  • We don't require you to break up the address into components such as street, city, country. Just send us the address as a single string and let us take care of the parsing.

  • Don't worry about capitalization or punctuation or abbreviations. The geocoder is smart enough to figure out that "Pky" means "Parkway" and "Mtn View" means "Mountain View".

  • The geocoder returns a nicely formatted version of the address you sent. So if your users are typing in things like "1600 aMPhiTheatrE pkWy 94043 USa", we'll send you back a cleaned-up version that you can store & display back to users: "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA".

  • The geocoder also returns the address broken up into components, like street, country, province, prefecture, postal code, etc. This allows you to do things like sort all your addresses by zip code. The geocoder response uses the eXtensible Address Language format, is an international address standard that works for 200+ countries.

  • There's also a simpler version of the geocoder that returns a GLatLng. If you don't need any fancy extra features like address components or cleaned-up strings, just use the getLatLng method of GClientGeocoder to get back a geocoded point.

  • The client-side JavaScript geocoder comes equipped with a built-in cache. This makes the user experience faster and means you'll use up less of your geocode request quota.

  • Street-level geocoding is available for the US, Canada, France, Germany, Italy, Spain and Japan. More countries will be added as Google Maps launches in new countries.

For now, geocode requests are limited to 50,000 requests per day per API key. Since this is a new service, we've set a conservative limit and will reassess as usage picks up. For more information on the geocoder and example code, check out the documentation. As always, we welcome your feedback on the feature and the documentation.

API v1 Current: 1.31
API v1 Default: 1.31
API v2 Current: 2.55a
API v2 Default: 2.54

Update: Removed Japan from the list of countries for which we offer street-level geocoding, as it is not available there. たいへん申し訳ございません。 m(_ _)m



Government Gets Together on Geospatial Architecture

Good article on the Geospatial Enterprise Architecture.

Für den beginnenden Fachinformatiker ;-)

5 Tips For a Beginning Programmer

For someone who spends most of their time in Photoshop or working with relatively simple languages like HTML and CSS, it can be difficult to move to more advanced (and more interesting) programming languages. The transition is significant and requires an overhaul in the way you approach a task or problem.

Being a beginning programmer myself, I have found the following tips very helpful in learning both the concepts behind general programming and the specifics of individual languages.

  1. Get the basics down first: It is important to realize that the logic behind most languages is nearly identical. So understanding what variables, loops and functions are beforehand will be invaluable. As described by Kyle Neath, learning various languages will be akin to learning to interpret a new accent once you understand their foundation. The best way to learn these basics is by focusing first on the concepts presented in your programming tutorial before reapproaching the content to learn the syntax, etc.
  2. Get a good book: This may seem like a no-brainer, but finding a good book that can walk you through the process is very important. Try starting of with a ‘For Beginners’ book as these usually do not make the assumption that you are at least partially familiar with the content they present. Also, consider picking up a couple of these introductory volumes as the authors of these types of books are often forced to cut out important parts to keep the lenghts down so you might find important topics in one book that went completely untouched in another. Plus, it’s always helpful to reread those foundational concepts.
  3. Learn by doing: This is perhaps the most important tip because it ensures that you are actually learning the concepts and syntax and not just recognizing what happens. There’s a big difference between actually writing the code and telling yourself that this is what I would do. Most books have end-of-section excercises – they’re there for a reason. Being presented with a problem or question helps you learn how to approach future programs.
  4. Go old school: When you’re first learning a programming language, it is easy to become overwhelmed with relatively minor syntax, style and conceptual problems making it difficult to remember what exactly it was that you were trying to do. By outlining your program’s function and scope on paper (or the electronic equivalent) you can quickly remind yourself of what you’re trying to achieve.
  5. Community Participation: A big part of learning a new programming language is joining an active and proud community. Whether it’s a co-worker, mailing list or forum, connecting with an expert can be just what you need. Books are good for setting you up but you’ll often find yourself faced with a seemingly insurmountable obstacle once you begin applying your new knowledge. At times like these, the practical experience of a seasoned programmer is essential not only to help you solve your problem but also to learn how the problem was solved.

If you have any tips that might be of use to a young programmer, feel free to submit them in a comment.

digg this story


Early Examples

NB:- Our API isn't fixed yet, don't complain if things change quickly. * ljn.html quick demo of three platforms on one screen, for London Javascript Night * demo-yahoo.html * demo-google.html * demo-microsoft.html * (patchy marker implementation so far) mapstraction.js talks to Google Maps, Yahoo Maps and Virtual Earth APIs * ypolyline/ - 95% complete polyline implementation for Yahoo Maps * mpolyline/ - 95% complete polyline implementation for Virtual EarthThis currently talks to v2 Google, v3 Yahoo and v2 VE. VE v3 is much better though, watch this space.

Mapstraction - a javascript library to hide differences between mapping APIs.

Blogged with Flock



The Screening Room #6: XML for Analysis

In the June episode of The Screening Room I receive an education from Chris Harrington, who runs the Active Interface consultancy, about an emerging standard for online analytical processing (OLAP) called XML for Analysis (XMLA). ...

Blogged with Flock

"location based services" einmal ganz neu definiert ;-)"

Eine der Urformen von location based services heißt: Lokalteil einer Regionalzeitung. Eigentlich müsste sie auch im Netz die Keimzelle von Communities und der Traum vieler Anzeigenkunden sein. Was viele Tageszeitungen stattdessen im Netz bieten, sind eingekaufte Nachrichten, ein paar Artikel aus der Papierausgabe und dazu ein Forum. Online als Randaktivität in den Händen von Beauftragten.

Wortfeld » Medien Netz Politik Weblog

Blogged with Flock

Tidy HTML Validator

Tidy HTML Validator
There are several HTML validation routines around. I happen to like this one beacuse it's not overly pedantic about tiny details, and it gives a neat concise explanation of the reasons why it thinks your HTML is incorrect.It comes as a Firefox extension, and puts a little green tick on the status bar when it considers your code to be valid, so you don't have to keep remembering to send your page to an external validator whenever you change something, you just watch to see if the green tick turns into a yellow triangle or a red cross.I don't think it's always 100% right, but I recommend it for the neatness and convenience.The Windows version is here. There are Linux, MacOSX and FreeBSD versions here.

Google Maps API Tutorial

Blogged with Flock

Mobile GMaps

v1.26 - One Year of MGMaps (June 30th, 2006)

Mobile GMaps is one! MGMaps v1.0 was announced on June 30th 2005. A year later, version 1.26 brings the following news:

  • The map scale is finally displayed on the screen. Currently only metric units are supported, support for U.S. units (miles/feets) will be added soon. The scale can be enabled or disabled in the Settings/Overlays screen.
  • The GPS Sync option now allows you to display a marker at the current position reported by the GPS device, instead of moving the map as your position changes. This is configured in the Settings/GPS screen that can also be displayed by pressing the extended key sequence 9 - 2. When GPS Sync is set to Marker, you can still move the map to your current position by selecting GPS - Where Am I in the services menu.
  • You can now check for MGMaps updates by selecting this option in the Help menu. If an updated version is found, exit MGMaps and visit the WAP site to download a newer version. You also have the option to open the WAP site directly from MGMaps, but the update will not work if the phone leaves MGMaps running in the background when it opens the WAP browser.
  • The search features are now based on Google's KML output format, this reduces the bandwidth used by the searches and makes them about 10 times faster than before.
  • Some bugs with the GPS selection window were fixed, but it's still recommended that you select the GPS device while viewing the maps, not in the welcome screen.

Together with v1.26, a new v1.1x version is out for those of you that do not use MGMaps v1.2x for various reasons. Version 1.19.15 includes the scale and the search speed improvements from v1.26.

Blogged with Flock


Neue Kostenfunktionen

Approximately Efficient Cost-Sharing Mechanisms. [cs.GT/0606127]

We make three different types of contributions to cost-sharing: First, weidentify several new classes of combinatorial cost functions that admitincentive-compatible mechanisms achieving both a constant-factor approximationof budget-balance and a polylogarithmic approximation of the social costformulation of efficiency. Second, we prove a new, optimal lower bound on theapproximate efficiency of every budget-balanced Moulin mechanism for Steinertree or SSRoB cost functions. This lower bound exposes a latent approximationhierarchy among different cost-sharing problems. Third, we show that weakeningthe definition of incentive-compatibility to strategyproofness can permitexponentially more efficient approximately budget-balanced mechanisms, inparticular for set cover cost-sharing problems.

Blogged with Flock

Würde auch Zeit bei uns

Internet Calling Pressures Bells to Lower Rates

New competitors, including cable companies and start-ups like Vonage, are putting intense pressure on traditional phone companies.

Blogged with Flock

Design Pattern auch für Manager

Systemisches Denken: Die Archetypen

In seinem Buch “Die fünfte Disziplin. Kunst und Praxis der lernenden Organisation” beschreibt Peter Senge verschiedene Archetypen von Wirkungskreisläufen in Systemen. Wir kennen so einen Archety unter dem Namen “Schweinezyklus“. Wer die wichtigsten dieser Muster kennt, ist im Vorteil. Schwerwiegende Fehleinschätzungen können vermieden werden, wenn man weiss, wie und in welcher Zeit sich Eingriffe in [...]

Blogged with Flock