0

この例http://code.google.com/p/gmaps-samples/source/browse/trunk/fusiontables/custom_markers.html?spec=svn2515&r=2515に従って、カスタム マーカーを作成しようとしていました。私のデータを使用するように例を変更しようとしました。違いは、データが既にジオコーディングされていることです。テーブル ID とコードの列を変更したときに、なぜ機能しないのかを理解するのに苦労しました。そこで、元のコードと自分のデータを含むコードに「住所」を印刷しました。

サンプルの融合テーブルを使用した元のコードは、次のような場所を出力します

(37.4471132, -122.1602044)

私のテーブルはすでにジオコーディングされているため、ほとんどの機能を削除しました

function codeAddress(row) {
    alert(row[1]);
    var marker = new google.maps.Marker(
            {
                map : map,
                position : row[1],
                //this is where the magic happens!
                icon : new google.maps.MarkerImage(icon: new google.maps.MarkerImage("http://www.google.com/images/icons/product/fusion_tables-32.png")
            }); 
}

しかし、アラートは少し異なる座標を表示するだけです

<Point><coordinates>-78.423652,-0.203057,0.0</coordinates></Point>

ええ、それは私がそれが機能していないと思うことです

4

2 に答える 2

1

私の意見では、position :その後にgoogle.maps.LatLng.

データは KML からのもののようrowです。最初の 2 つの数値を抽出して LatLng を作成する必要があります。

于 2012-04-13T03:17:23.590 に答える
1

Mia DiLorenzo の言うとおりです。MarkerOptionはpositionLatLng オブジェクトを想定しています。

この例を見てください。これはあなたのものと非常に似ていますが、Coordinatesフィールドを使用してマーカーを作成しています。

この例では、座標フィールドのデータがカンマ区切りの「lat,lng」であると想定しています。47.7672,-3.2022

ただし、データがたまたま KML 形式の場合は、緯度/経度の値を抽出するだけです。値は、経度、緯度、高度の順に並んでいます ( KMLの詳細については、 KML リファレンスcoordinatesを参照してください)。

function createLatLngObject(kmlString) {
   //remove XML tags from input
   var xmlRegEx = /<\/?\w+>/;
   var kmlValue = kmlString.replace(xmlRegEx,'');

   // now kmlValue contains e.g. -78.423652,-0.203057,0.0

   //extract latitude and longitude
   var coordinates = kmlValue.split(",");
   var lat = coordinates[1];
   var lng = coordinates[0];

   return new google.maps.LatLng(lat, lng);
}

function createMarker(row) {
   var latlng = createLatLngObject(row[1]);
   var marker = new google.maps.Marker({
       map: map, 
       position: latlng,
       icon: new google.maps.MarkerImage("http://www.google.com/images/icons/product/fusion_tables-32.png")
    });
}
于 2012-04-13T21:33:47.920 に答える