I have been scratching my head, trying various configurations, and reading forum posts for days, trying to get geocoding to work for node locations with Gmap. I have tried disabling geocoding in the location module, and enabling the Google geocoder in GMap Location, and the reverse. I've tried it with both enabled, I've tried configuring the map linking and geocoding tabs in the location module (per http://drupal.org/node/147037). Nothing seems to work. My maps are displaying, and I can get a marker by entering lat/long or by clicking on the map, but no geocoding from the location address.

There seems to be lots of discussion around geocoding, and several geocoding module projects, and I noticed in the CSV messages that the latest release had updated address.js functionality, etc...

The GMap UI indicates that geocoding is possible, but the documentation is unclear and there are lots of other signals that maybe it doesn't work. Can someone clarify this for me, and if it does work, point me in a direction to get it working on my site.

Any help would be greatly appreciated.

-David

CommentFileSizeAuthor
#32 geocode_update.tar_.gz1.65 KBEvanDonovan
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

ray007’s picture

I think geocoding is the task of the location-module. Gmap is for picking a location interactively on a map.
For US and canada, server-side geocoding should work with location module out of the box, other countries need patches for country-support.

boaz_r’s picture

I'm actually reading this to gather the same information. But I can add the following:
- See http://www.google.com/apis/maps/documentation/index.html#Geocoding_Examples for examples on how to do geocoding directly via google. The code I maintain, in specific, uses the following HTTP approach (in PHP):

function getcor($street,$city,$province,$country) {
	$address = '';
	if($street) {$address .= $street. '+';}
	if($city) {$address .= $city. '+';}
	if($province) {$address .= $province. '+';}
	if($country) {$address .= $country. '+';}
	$address = substr($address,0,strlen($address)-1);
	$address=urlencode($address);
	return file('http://maps.google.com/maps/geo?q='.$address. '&output=csv&key=YOUR_KEY_HERE!!!');
}
// You must update the key above - get a key here: http://www.google.com/apis/maps/signup.html

- I am looking to move it to some function, rather working directly against Google.
- I agree that the documentation is lacking. I'm pretty sure there are nowadays stable enough functions in either gmap and/or location modules, or at least I hope. I'm keeping looking. If you're desperate, you can use the above code. How? In many ways. For example, utilizing nodeapi() hook in the appropriate "ops".

ray007’s picture

There already is some support to use the google api for geocoding in the location module.
Ankur said he's currently working on improving the current situation, see also http://drupal.org/node/132541

daboyd’s picture

Thanks Ray, Just to clarify -if I install your patch from http://drupal.org/node/132541, node address (location) information will be used to automatically geocode using google? So, I should not expect this to be the case "out of the box" with just the location, gmap and gmap_location modules installed? Even though the location UI for node edit seems to indicate that this is the case?

If you wish to supply your own latitude/longitude, you may do so here. Leaving these fields blank means that the system will determine a latitude/longitude for you, if possible.

Just to re-state my issue. Everything works as expected except for geocoding.

-David

ray007’s picture

If you're living in the usa or canada, it should work. Otherwise you'll probably want to use my patch and maybe update your country include file by looking at the austrian (at) or german (de) one. I've seen somewhere a patch for uk, no idea about other countries.

daboyd’s picture

Ray -to clarify, "If you are living in the usa or canada it should work" means that it should work "out of the box" or it should work with the patch? I'm afraid that I am still a bit confused on this point. I actually need to have it work globally if possible, so I suspect that the patch will be useful either way. I'm just trying to get a clear picture of what works and what doesn't.

Also see James' (the former gmap maintainer) comment to this parallel thread http://groups.drupal.org/node/5083#comment-15348, which indicates that there is an incompatibility between gmap_location.module and location.module.

nashINATOR’s picture

Hi there,
i face a similar problem only slightly different.
I finally got the location module to geocode for me through the google website but i cant seem to get a map to display on the node. Correct me if i am wrong. I installed the google map cck to do this but it does not seem to take any information from the location module. How do i get this to work? Help anyone?
Btw. I got location to geocode for me by ading a bit of code to the location.nz.inc (I live in New Zealand) I actually copied it from the location.us.inc file and deleted all functions except the ones that connected to the google site.
attached below is that code. You can modify it so that where it says "nz" change it to the initials of your country.

// $Id: location.us.inc,v 1.16.2.1 2007/03/12 22:08:07 ankur Exp $



/**
 * Parameters:
 *   An associative array $location where
 *     'street'       => the street portion of the location
 *     'supplemental' => additional street portion of the location
 *     'province'     => the province, state, or territory
 *     'country'      => lower-cased two-letter ISO code (REQUIRED)
 *     'postal_code'  => the international postal code for this location (REQUIRED)
 *
 *
 */





function location_map_link_nz_google($location = array()) {
  $query_params = array();
  
  foreach (array('street', 'city', 'province', 'postal_code', 'country') as $field) {
    if (isset($location[$field])) {
      $query_params[] = $location[$field];
    }
  }
  
  if (count($query_params)) {
    return ('http://maps.google.com?q='. urlencode(implode(", ", $query_params)));
  }
  else {
    return NULL;
  }
}

function location_map_link_nz_providers() {
  return array('google' => array('name' => 'Google Maps', 'url' => 'http://maps.google.com', 'tos' => 'http://www.google.com/help/terms_local.html')
               
              );
}


/**
 * @return
 *   An array of values that work as keys to the array returned by location_map_link_nz_providers.  The idea is that if the
 *   administrator of the site has not yet had a chance to visit the "Map Links" subtab on the location module's settings page,
 *   that we can provide deep-linking to a relatively safe default.  By 'relatively safe', we mean that the Terms Of Service of
 *   the provider of the maps are flexible enough for most parties.
 *
 *   For the case of the U.S., 'google' has relatively flexible Terms Of Service, whereas Yahoo! Maps and MapQuest have more
 *   restrictive Terms Of Service.
 *
 */
function location_map_link_nz_default_providers() {
  return array('google');
}

function location_geocode_nz_providers() {
  return array(
    
    'google' => array('name' => 'Google Maps API', 'url' => 'http://www.google.com/apis/maps/', 'tos' => 'http://www.google.com/apis/maps/terms.html')
  
  );
}

function location_geocode_nz_google($location = array()) {
  $service_url = 'http://maps.google.com/maps/geo?output=xml&key='. variable_get('location_geocode_nz_google_apikey', '') .'&q=';

  $address = location_address2singleline($location);
  
  $http_reply = drupal_http_request($service_url . urlencode($address));
  
  $status_code_match = array();
  preg_match('/<code>(.*)<\/code>/', $http_reply->data, $status_code_match);
  $status_code = $status_code_match[1];
  if ($status_code != 200) {
    return NULL;
  }
  
  $accuracy_code_match = array();
  preg_match('/Accuracy="([0-9])"/', $http_reply->data, $accuracy_code_match);
  $accuracy_code = $accuracy_code_match[1];
  if ($accuracy_code != 8 && $accuracy_code != 7) {
    return NULL;
  }
  
  $latlon_match = array();
  preg_match('/<coordinates>(.*)<\/coordinates>/', $http_reply->data, $latlon_match);
  
  $latlon_exploded = explode(',', $latlon_match[1]);
  
  return array('lat' => $latlon_exploded[1], 'lon' => $latlon_exploded[0]);
}

function location_geocode_nz_google_settings(){
  $form = array();

  $form['location_geocode_nz_google_apikey'] = array(
    '#type' => 'textfield',
    '#title' => t('Google Maps API Key'),
    '#size' => 64,
    '#maxlength' => 128,
    '#default_value' => variable_get('location_geocode_nz_google_apikey', ''),
    '#description' => t('In order to use the Google Maps API geocoding web-service, you will need a Google Maps API Key.  You can obtain one at the !sign_up_link for the !google_maps_api.', array('!sign_up_link' => '<a href="http://www.google.com/apis/maps/signup.html">sign-up page</a>', '!google_maps_api' => '<a href="http://www.google.com/apis/maps/">Google Maps API</a>'))
  );

  return $form;
}


/**
 * Returns an associative array of states/territories where
 *   -> the keys are integers starting from 1
 *   -> the values are the English names for those states/territories
 *
 * The states are grouped together at the beginning of the array and sorted
 * alphabetically.
 *
 * The territories are grouped together at the end of the array and sorted
 * alphabetically.
 *
 */
function location_province_list_nz() {
  return array('Auckland' => "Auckland",
    'Bay of Plenty' => "Bay of Plenty",
    'Canterbury' => "Canterbury",
    'Gisborne' => "Gisborne",
    'Hawkes Bay' => "Hawke's Bay",
    'Marlborough' => "Marlborough",
    'Manawatu' => "Manawatu",
    'Wanganui' => "Wanganui",
    'Nelson' => "Nelson",
    'Northland' => "Northland",
    'Otago' => "Otago",
    'Southland' => "Southland",
    'Tasman' => "Tasman",
    'Taranaki' => "Taranaki",
    'Wellington' => "Wellington",
    'Waikato' => "Waikato",
    'Westcoast' => "West Coast");
}



ray007’s picture

@daboyd:
There currently is no glocal geocoding in the location module. But I hope ankur is working on that. Gmap clientside javascript geocoder could probably do that too, but I haven't yet used it. And I don't think it would be problematic with location's geocoding, since I think location doesn't try to geocode if there are user-provided coordinates.

@nashINATOR:
The gmap-cck field doesn't yet have location integration.
You either need to show the map with some php code, or you can use a gmap-view.

tom_o_t’s picture

@nashINATOR

Thanks for that demonstration of how to add geocoding for new countries - I hadn't realised it was that straightforward!

As another simple alternative to Ray007s suggestions for displaying the map, you can just enable the "location map" block for the appropriate content type that you created with CCK - just set it to display in the 'content' region. Under the configuration menu you can enter a Macro to set the zoom level, width, height, etc.

daboyd’s picture

I have now resolved my original problem. The location module will geocode based on the node location information, at least for the US (I have not yet tried outside of US). It turns out that one needs to enter the google API key in two locations: gmap module settings (admin => module settings => gmap), and location module settings (admin => module settings => location => geocoding options tab => configure parameters). In retrospect this makes complete sense as the location module is doing the geocoding and the google API key would be required to call google's geocoder. However, the UI is not at all intuitive as the "configure parameters" link appears to only apply to Yahoo. If anyone working on location.module is listening, a lot of grief could be saved by fixing this.

Thanks to boazry for this post that cleared up the matter for several of us http://groups.drupal.org/node/5083#comment-15439. From my perspective, the issue is now resolved. Thanks to everyone who responded!! -David

dwees’s picture

I used the snippet below to update all of my user's (node) profiles with the proper latitude and longitude (at least in those countries where Geocoding is supported by Google).


$result = db_query("SELECT nid, vid FROM node WHERE type = 'profile'");

while ($row = db_fetch_array($result)) {

  $node = node_load($row['nid']);

  $city = $node->location['city'];
  $province = $node->location['province'];
  $country = $node->location['country'];

  $address = str_replace(" ", "+", $city .",". $province .",". $country);
  $google_key = variable_get('googlemap_api_key', '');

  $url = "http://maps.google.com/maps/geo?q=" . $address ."&output=csv&key=". $google_key;

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  $text = curl_exec($ch);
  curl_close($ch);

  $location = explode(",", $text);
  $latitude = $location[2];
  $longitude = $location[3];

  echo '<p>';
  if (!is_null($latitude) && !is_null($longitude) && !($latitude == 0 && $longitude == 0) && $row['vid']) {
    db_query("UPDATE {location} SET latitude = %f, longitude = %f, source = 1 WHERE eid = %d", $latitude, $longitude, $row['vid']);
    echo 'Node '. $row['nid'] .' has been updated';
  }
  else {
    echo 'Unable to update node '. $row['nid'] .'with vid = '. $row['vid'];
    echo '<pre>';
    print_r($location);
    echo '</pre>';
  }
  echo '</p>';
}

Summit’s picture

Subscribing. Looking forward to global geocoding because with my website I need to be able to set nodes all over the world!
greetings,
Martijn

dwees’s picture

It looks like Yahoo! provides a good service for this. Not precisely sure exactly how to modify my code (I don't have their API in front of me) but I do know they will provide Geocoding for all (almost all?) of the major cities in the world, but not street level accuracy.

Dave

kobnim’s picture

subscribing

Rick Hood’s picture

@daboyd #10

Wow thanks for this - I was going crazy trying to figure that out. And this was stumping me too "However, the UI is not at all intuitive as the "configure parameters" link appears to only apply to Yahoo."

timflan’s picture

Responding to @daboyd #10

THANK YOU! I was going just about bonkers with this same ridiculous problem. And I promise you I would NEVER have discovered the SECOND spot for the Google Maps API: location module settings (admin => module settings => location => geocoding options tab => configure parameters).

EvanDonovan’s picture

Here's a little code snippet I wrote based on #11 to update nodes' geocodes using the google_geocode_location() function provided by the location module. I've tested it up to 75 rows at a time, but it may still have bugs or run slower than it ought to. Let me know if there's an easier way to do this.

Note that for this script to work, you will have had to enable the Google geocoder for the countries in which you have location data and have put the Google Maps API key in the settings for the Location module, as described earlier in this thread.

$row_start = 1;
$items_per_run = 50; // arbitrary number - adjust to fit your needs

$node_type = "volunteer_opportunity"; // also do for organizations

if ( isset($_GET['rowNum']) ) {
	echo "<ol>";

    $row_start = $_GET['rowNum'];
	$result = db_query_range('SELECT n.nid FROM {node} n WHERE n.type = "%s"', $node_type, $row_start, $items_per_run);

	while ($nid = db_fetch_object($result)) {
	
	  $node = node_load($nid->nid);
	  
	  $location = $node->location;
	
	  if (!empty($location)) {
	     $google_location = google_geocode_location($location); }
	  
	  $latitude = $google_location['lat'];
	  $longitude = $google_location['lon'];
	  $eid = $node->vid;
	  
	  if (!is_null($latitude) && !is_null($longitude) && !($latitude == 0 && $longitude == 0) && $eid) {
	    $updated = db_query("UPDATE {location} SET latitude = %f, longitude = %f, source = 1 WHERE eid = %d", $latitude, $longitude, $eid);
	    if ($updated == TRUE) { echo "<li>Node " . $nid->nid . " has been updated</li>"; }
	  }
	    else {
	    echo "<li>Unable to update node " . $nid->nid . " with vid = " . $eid . "</li>";
	  }
	}  
	  echo "</ol>";
}
  $next_row_start = $row_start + $items_per_run;
  if ( isset($_GET['rowNum']) ) {
    echo l( 'continue location data update: rows ' . $next_row_start . ' to ' . ( $next_row_start + $items_per_run - 1), $_GET['q'], array(), 'rowNum='. $next_row_start );
  }
  else {
    echo l( 'start location data update: rows ' . $row_start . ' to ' . ($next_row_start - 1), $_GET['q'], array(), 'rowNum=1' );
  }

UPDATED 7/28:

  • fixed so that the node numbers display properly (changed $nid to $nid->nid
  • added code to trigger the update as per James Andres' MT import script on http://drupal.org/node/860
  • added loop to update 50 nodes at a time as per dgordon's code on http://drupal.org/node/860
mroswell’s picture

subscribing

techutopia’s picture

Hi,

I have changed a little of the code in #17 and produced something that works similarly, but provides some output for feedback on Geocode updates.

The resultant output is tabular:

Nid, Eid, Lat, Lon, Status, link
1539, 3499, 49.264601, -124.788480, RESULT*, link
1538, 3498, 50.754050, -119.228004, RESULT*, link

* - RESULT is currently of 3 types:
PRESENT - Node Geocode data is already present
FAILED - Could not get Geocode from Google - usually because of a bad address
FETCHED - Geocode data fetched from Google successfully

Obviously the 'link' column is a link to the node concerned so any bad addresses can be investigated.

I have also added a 'delay' into the code after a query is made to Google (currently a 1 second delay).
I did this as I found that Google throttles requests and too many requests sent quickly will result in data not being returned occasionally.

Code works well for me, would it be useful to others?

mroswell’s picture

Sure!

EvanDonovan’s picture

I'd love to see your updated version of my code. Could you post it on here as an attachment?

Thanks!

I didn't realize Google throttled requests; maybe that caused some of my data not to update...

dwees’s picture

I think the limit is 50,000 queries per hour or something similarly high. Should check the FAQ page for the developers of the Gmaps, I'm sure it's there.

Dave

techutopia’s picture

As per my #17 post, here's the code.

Note: This is my 1st bit of drupal PHP code, so the usual caveats apply. ;-)

<?php
$row_start = 1;
$items_per_run = 50; // arbitrary number - adjust to fit your needs

$node_type = "YOUR_NODE_TYPE_HERE";


?>
<TABLE width='100%'><TR><TD><b>Nid</TD><TD><b>Eid</TD><TD><b>Lat</TD><TD><b>Lon</TD><TD><b>Status</TD><TD><b>Node link</TD></TR>
<?php


if ( isset($_GET['rowNum']) ) {
    echo "";

    $row_start = $_GET['rowNum'];
    $result = db_query_range('SELECT n.nid FROM {node} n WHERE n.type = "%s"', $node_type, $row_start, $items_per_run);

    while ($nid = db_fetch_object($result)) {
   
      $node = node_load($nid->nid);
     
      $location = $node->location;
 
$eid = $node->vid;
  
echo "<TR><TD>".$nid->nid."</TD><TD>".$eid."</TD>";

$query1 = "SELECT * FROM location WHERE eid='$eid'";
$result1 = mysql_query($query1);

$row = mysql_fetch_array($result1);

if (!is_null($row[latitude]) && !is_null($row[longitude])) echo "<TD>".$row[latitude]."</td><td>".$row[longitude]."</td><td><FONT COLOR='blue'>PRESENT</FONT COLOR></td>";

if (is_null($row[latitude]) && is_null($row[longitude])){

      if (!empty($location)) {
         $google_location = google_geocode_location($location); sleep(1);}

      $latitude = $google_location['lat'];
      $longitude = $google_location['lon'];
echo "<TD>$latitude</TD><TD>$longitude</TD>";
     
      if (!is_null($latitude) && !is_null($longitude) && !($latitude == 0 && $longitude == 0) && $eid) {
        $updated = db_query("UPDATE {location} SET latitude = %f, longitude = %f, source = 1 WHERE eid = %d", $latitude, $longitude, $eid);
        if ($updated == TRUE) { echo "<TD><FONT COLOR='green'>FETCHED</FONT COLOR></TD>"; }
      }
        else {
        echo "<TD><FONT COLOR='red'>FAILED</FONT COLOR></TD>";
      }

}
echo "<td><a href='/node/".$nid->nid."' target='_blank'>link</a></TD></tr>";      
      
      
      } 
  
}

?>
</table>
<?php

  $next_row_start = $row_start + $items_per_run;
  if ( isset($_GET['rowNum']) ) {
    echo l( 'Continue location data update: rows ' . $next_row_start . ' to ' . ( $next_row_start + $items_per_run - 1), $_GET['q'], array(), 'rowNum='. $next_row_start );
  }
  else {
    echo l( 'Start location data update: rows ' . $row_start . ' to ' . ($next_row_start - 1), $_GET['q'], array(), 'rowNum=1' );
  }
?>
EvanDonovan’s picture

I like the table output, for debugging purposes. On a brief review, I would say that the MySQL query you've added in shouldn't be necessary, since the node_load call has already loaded $node->location as an object. After the line in which I set $location = $node->location, you should be able to do something like the following:

if(isset($location['lat']) && isset($location['lon']))
 { echo "<td>" . $location['lat'] . "</td><td>" .  $location['lon'] . "</td><td style="color: blue;">PRESENT</td>"; } 

In any case, Drupal's database abstraction layer eliminates the need for any direct MySQL calls.

Thanks for the code! I'll use a modified version of it from now on.

Btw, I wasn't only doing the lat/lon query from Google when lat/lon was currently NULL, since we had values in the table already, just not accurate ones. You can either add the conditional or leave it out, as necessary for your needs.

computer_jin’s picture

Hi dwees ,

I am using this code to get longitude and latitude but i am receiving an empty result. can u please tell me how can i solve this .....?

dwees’s picture

One possibility is that the API has changed. This code is over a year old, the Geocoding API may have changed since then. I certainly haven't used this recently.

Dave

EvanDonovan’s picture

computer_jin, et al.: Here's an updated version of the script for the 6.x version of the Location module.

There were some API changes in both Location and Drupal that I had to make. I also added usleep to keep from throttling the Google geocoder, and made the script faster, I believe, by replacing the node_load with a more optimized query.

Finally, I changed the script to only update locations where latitude & longitude were 0,0 or 180, 360. So you would have to change my $location_sql query if you wanted it to update all locations (even those that currently had latitude & longitude values), like the old script did.

Let me know if this works for you.

$google_geocoder = './'. drupal_get_path('module', 'location') . '/geocoding/google.inc';
include_once($google_geocoder);

$row_start = 1;
$items_per_run = 100; // arbitrary number - adjust to fit your needs

if ( isset($_GET['rowNum']) ) {

    $row_start = $_GET['rowNum'];
    $location_sql = 'select * from {location} loc where
                    ((loc.latitude=0 and loc.longitude=0) or
                    (loc.latitude=180 and loc.longitude=360)) and
                     loc.lid in (select l.lid
                     from {location_instance} l, {node} n
                     where l.nid = n.nid)';
	$result = db_query_range($location_sql, $row_start, $items_per_run);

    echo "<ol>";

	while ($location = db_fetch_array($result)) {

         $old_latitude = $location['latitude'];
         $old_longitude = $location['longitude'];
	
	  if (!empty($location)) {
	     $google_location = google_geocode_location($location);
	  }

          usleep(250000); 
	  
	  $latitude = $google_location['lat'];
	  $longitude = $google_location['lon'];
	  $lid = $location['lid'];

      $update_status = "Updated location #" . $lid . " from " . $old_latitude . ", " . $old_longitude . " to " . $latitude . ", " . $longitude;    

    if (!is_null($latitude) && !is_null($longitude) && !($latitude == 0 && $longitude == 0) && $lid) {
    $updated = db_query("UPDATE {location} SET latitude = %f, longitude = %f, source = 1 WHERE lid = %d", $latitude, $longitude, $lid);
      echo "<li>" . $update_status . "</li>";
     }
   else {
    echo "<li>Location #" . $lid . " not updated.</li>";
    }
  }
 echo "</ol>";
}  
  $next_row_start = $row_start + $items_per_run;
  if ( isset($_GET['rowNum']) ) {
    echo l( 'continue location data update: rows ' . $next_row_start . ' to ' . ( $next_row_start + $items_per_run - 1), $_GET['q'], array('query' => 'rowNum='. $next_row_start) );
  }
  else {
    echo l( 'start location data update: rows ' . $row_start . ' to ' . ($next_row_start - 1), $_GET['q'], array('query' => 'rowNum=1') );
  }
EvanDonovan’s picture

Version: 5.x-1.x-dev » 6.x-1.x-dev

By the way, I'm thinking of turning something similar to this script into an operation for use with admin/content/node and the Views Bulk Operations module. Would anyone have interest in that?

Summit’s picture

Hi,

It would be great if this would become a submodule of location to batch add lat/lon to geographical data like country, province, city...
Would anyone be willing to build this module using above snippets?
greetings, Martijn

EvanDonovan’s picture

@Summit: I actually have a module that does this. It's a slightly modified version of the code from #27. It's not incredibly well-tested, but it's been working on my site for quite some time. If you would like it, I will post it in this issue (as a tar.gz). I don't know whether I would be willing to actually become the maintainer of it though.

Summit’s picture

Hi great to post this module als tar. then, yes please. See what's coming from that !
Thanks a lot in advance.

greetings, Martijn

EvanDonovan’s picture

FileSize
1.65 KB

Here you go. Let me know if it works for you. If you really think it's useful, I might consider making it a module on Drupal.org - but I'd have to learn CVS first.

After you have a chance for feedback, I think I'm going to close this issue, since it's wandered quite far from the original post topic.

alfarovive’s picture

EvanDonovan:

Would this work with a location cck rather than the nodes location?

Thanks

EvanDonovan’s picture

@alfarovive: If those use the same location tables to store latitude & longitude, yes. I'm not sure; I've never used them.

Summit’s picture

Hi, No CCK Location uses different tables to store latitude & longtitude. Greetings, Martijn

EvanDonovan’s picture

Then I guess the code would have to be modified. Sorry I don't have time at the moment.

rooby’s picture

Project: GMap Module » Location
Version: 6.x-1.x-dev » 6.x-3.x-dev
Component: User interface » Miscellaneous

This is a location module issue

heshanlk’s picture

sub

EvanDonovan’s picture

Title: Geocoding of node locations? » Create a module that geocodes node locations
Assigned: Unassigned » EvanDonovan
Category: support » task

Hmm...I should probably make #32 into a contrib module at some point. I have a CVS account now, so it would be easier. Note to self to do that, but I don't have time right now.

EvanDonovan’s picture

Assigned: EvanDonovan » Unassigned
Status: Active » Fixed

Under most circumstances I think that the instructions on http://drupal.org/node/1041632 should be sufficient for mass geocoding of node locations. I added a link at the bottom of that page to the sandbox project I created in #32, which still works to my knowledge, though would need to be edited for CCK Locations.

I am going to mark this as "fixed" since this should not be handled, I believe, by the core Location module, but would be the task of a separate contrib module. I don't have the time or resources presently to work further on this however.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.