public decimal[] GetLatLng(decimal lat, decimal lng)
{
int PX, PY;
int OX = 0;
int OY = 0;
int PX1, PY1;
decimal[] LatLng = new decimal[] { lat, lng };
try
{
Database db = DatabaseFactory.CreateDatabase();
string sqlCmd = "SELECT TOP 1 X,Y FROM Offset WHERE Lat=" + lat.ToString("0.00") + " AND Lng=" + lng.ToString("0.00");
DbCommand dbCmd = db.GetSqlStringCommand(sqlCmd);
using (IDataReader dr = db.ExecuteReader(dbCmd))
{
if (dr.Read())
{
OX = GetInt32(dr, "X");
OY = GetInt32(dr, "Y");
}
}
if (OX != 0 && OY != 0)
{
Map.LatLongToPixelXY(Convert.ToDouble(lat), Convert.ToDouble(lng), 18, out PX, out PY); PX1 = PX + OX;
PY1 = PY + OY; LatLng[0] = Convert.ToDecimal(Map.PixelYToLat(PY1, 18));
LatLng[1] = Convert.ToDecimal(Map.PixelXToLng(PX1, 18));
}
}
catch (Exception ex)
{
DAL.LogHelper.Write(DateTime.Now.ToString()+ex.Message.ToString());
}
return LatLng;
}
{
int PX, PY;
int OX = 0;
int OY = 0;
int PX1, PY1;
decimal[] LatLng = new decimal[] { lat, lng };
try
{
Database db = DatabaseFactory.CreateDatabase();
string sqlCmd = "SELECT TOP 1 X,Y FROM Offset WHERE Lat=" + lat.ToString("0.00") + " AND Lng=" + lng.ToString("0.00");
DbCommand dbCmd = db.GetSqlStringCommand(sqlCmd);
using (IDataReader dr = db.ExecuteReader(dbCmd))
{
if (dr.Read())
{
OX = GetInt32(dr, "X");
OY = GetInt32(dr, "Y");
}
}
if (OX != 0 && OY != 0)
{
Map.LatLongToPixelXY(Convert.ToDouble(lat), Convert.ToDouble(lng), 18, out PX, out PY); PX1 = PX + OX;
PY1 = PY + OY; LatLng[0] = Convert.ToDecimal(Map.PixelYToLat(PY1, 18));
LatLng[1] = Convert.ToDecimal(Map.PixelXToLng(PX1, 18));
}
}
catch (Exception ex)
{
DAL.LogHelper.Write(DateTime.Now.ToString()+ex.Message.ToString());
}
return LatLng;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货