0
我有以下代码时,我拖曳地图,它的位置上的标记,其将更新与位置的纬度/经度的文本框:如何从Nokia Maps API获取十进制经度/纬度?
var listener = function (evt) {
/* We check if this drag listener is called while the marker is being
* dragged using the default behavior component
*/
var mapDragType = evt.dataTransfer.getData("application/map-drag-type");
if (mapDragType === "marker") {
// Get the marker itself.
var marker = evt.dataTransfer.getData("application/map-drag-object");
// Get the offset of the mouse relative to the top-left corner of the marker.
var offset = evt.dataTransfer.getData("application/map-drag-object-offset");
/* Calculate the current coordinate of the marker, so substract the offset from the
* current displayX/Y position to get the top-left position of the marker and then
* add the anchor to get the pixel position of the anchor of the marker and then
* query for the coordinate of that pixel position
*/
var coordinate = map.pixelToGeo(evt.displayX - offset.x + marker.anchor.x, evt.displayY - offset.y + marker.anchor.y);
// If the marker is dragged above a zone where it may not be dropped
if (evt.dataTransfer.dropEffect === "none") {
// If this is the end of the drag
if (evt.type === "dragend") {
// then the marker will jump back to where it was;
updateInputValue(marker, marker.coordinate.toString());
}
else {
// otherwise it is currently (while being dragged) above an invalid drop zone
updateInputValue(marker, "Invalid drop zone!");
}
}
else {
// If the marker is somewhere above the map, update info text with the new coordinate.
updateInputValue(marker, coordinate.toString());
}
}
};
/* Create a helper method that updates the text fields associated with the
* marker passed as argument
*/
var updateInputValue = function (draggedMarker, text) {
if (draggedMarker === marker)
$("input[name*='txtGeoLocation']").val(text);
//markerPosUiElt.innerHTML = text;
};
时遇到的问题是,纬度/经度当我需要它在十进制格式时以长格式输出。
我试图改变以下行:
updateInputValue(marker, marker.coordinate.toString());
以下几点:
updateInputValue(marker, marker.coordinate.latitude.ToString() + ', ' + marker.coordinate.longitude.ToString());
但后来我的文本框停止填充(我想象中的错误抛出这是不冒泡向上)。我甚至试图用下列方法检索纬度:
updateInputValue(marker, marker.coordinate.latitude.ToString());
但我仍然没有收到任何输出。
我该如何做到这一点?我绝对不想要长格式的经度/纬度,只希望将这个十进制版本写到我的文本框中。