--- /home/shenliang/Desktop/gmap.module	2010-06-09 01:40:59.000000000 +0800
+++ /var/www/svn/futurename/sites/all/modules/contrib/gmap/gmap.module	2010-07-31 15:48:20.000000000 +0800
@@ -326,7 +326,13 @@ drupal_add_js($gmap_path . '/js/poly.js'
     'key' => gmap_get_key(),
     'hl' => $language->language,
   );
-  drupal_set_html_head('<script src="'. check_url(url('http://maps.google.com/maps', array('query' => $query))) .'" type="text/javascript"></script>');
+  if ($language->language == 'zh-hans') {
+    $query['hl'] == 'zh-CN';
+    drupal_set_html_head('<script src="'. check_url(url('http://ditu.google.com/maps', array('query' => $query))) .'" type="text/javascript"></script>');
+  }
+  else {
+    drupal_set_html_head('<script src="'. check_url(url('http://maps.google.com/maps', array('query' => $query))) .'" type="text/javascript"></script>');
+  }
 
   $gmap_initialized = TRUE;
 }
@@ -1109,7 +1115,12 @@ function gmap_decimal($num) {
  */
 function gmap_geocode($address, $tld = 'com') {
   $key = gmap_get_key();
-  $data = drupal_http_request('http://maps.google.' . $tld . '/maps/geo?q=' . drupal_urlencode($address) . '&output=csv&key=' . $key);
+  if ($language->language == 'zh-hans') {
+    $data = drupal_http_request('http://ditu.google.' . $tld . '/maps/geo?q=' . drupal_urlencode($address) . '&output=csv&key=' . $key);
+  }
+  else {
+    $data = drupal_http_request('http://maps.google.' . $tld . '/maps/geo?q=' . drupal_urlencode($address) . '&output=csv&key=' . $key);
+  }
   if ($data->code == 200) {
     $r = explode(',', $data->data);
     return array(
