Преглед на файлове

Bug fix w białych plamach

Mariusz Muszyński преди 9 години
родител
ревизия
a44cfe2132
променени са 1 файла, в които са добавени 30 реда и са изтрити 17 реда
  1. 30 17
      SE/dev/php-cli/biale_plamy.php

+ 30 - 17
SE/dev/php-cli/biale_plamy.php

@@ -13,12 +13,21 @@ foreach ($result as $row) {
 	$multiway = Vendor_Geophp::load($row['multiway'], 'wkt');
 //echo $multiway->length();
 	for ($i = 1; $i < $n = $multiway->numPoints(); $i++) {
-		$ways[] = new LineString(array($multiway->pointN($i), $multiway->pointN($i+1)));
+		$way = new LineString(array($multiway->pointN($i), $multiway->pointN($i+1)));
+		$ways[] = $way->asText();
 		if (!in_array($multiway->pointN($i)->asText(), $joins)) $joins[] = $multiway->pointN($i)->asText();
 	}
 	if (!in_array($multiway->pointN($n)->asText(), $joins)) $joins[] = $multiway->pointN($n)->asText();
 }
 
+//$db = DB::getDB();
+//$db->query("truncate table Rozdzielcza_test_bzyk_ways");
+//foreach ($ways as $way) {
+//        $query = "insert into Rozdzielcza_test_bzyk_ways (the_geom) values (linefromtext('".$way->asText()."'))";
+//        $db->query($query);
+//}
+//die();
+
 // todo relacje ways <-> joins
 
 $query = "select ID, astext(the_geom) as point, astext(the_geom_nearest_way) as way, astext(the_geom_xpoint) as xpoint from Rozdzielcza_test_bzyk_punkty_adresowe";
@@ -35,9 +44,9 @@ foreach ($result as $row) {
         $way = Vendor_Geophp::load($row['way'], 'wkt');
 
 	if (!(in_array($xpoint->asText(), $joins))) {
-		if (@!in_array($key, $ways2cut[array_search($way, $ways)])) {
-			$ways2cut[array_search($way, $ways)][] = $key;
-		}
+		if (@!in_array($key, $ways2cut[array_search($way->asText(), $ways)])) {
+			$ways2cut[array_search($way->asText(), $ways)][] = $key;
+		} else echo ".";
 	};
 }
 
@@ -48,10 +57,11 @@ function pointsDistance($a, $b) {
 
 foreach ($ways2cut as $way_key => $xpoint_keys) {
 	$distances = array();
+	$way = Vendor_Geophp::load($ways[$way_key], 'wkt');
 	foreach ($xpoint_keys as $xpoint_key) {
 		$xpoint = Vendor_Geophp::load($xpoints[$xpoint_key], 'wkt');
-		$joins[] = $xpoint;
-		$distances[$xpoint_key] = pointsDistance($ways[$way_key]->startPoint(), $xpoint);
+		$joins[] = $xpoint->asText();
+		$distances[$xpoint_key] = pointsDistance($way->startPoint(), $xpoint);
 	}
 	asort($distances);
 
@@ -60,32 +70,35 @@ foreach ($ways2cut as $way_key => $xpoint_keys) {
 		$sub_xpoints[] = Vendor_Geophp::load($xpoints[$xpoint_key]);
 	}
 
-	$startPoint = $ways[$way_key]->startPoint();
-	$endPoint = $ways[$way_key]->endPoint();
-	$ways[$way_key] = new LineString(array($startPoint, $sub_xpoints[0]));
+	$startPoint = $way->startPoint();
+	$endPoint = $way->endPoint();
+	$way = new LineString(array($startPoint, $sub_xpoints[0]));
+	$ways[$way_key] = $way->asText();
 	for ($i = 0; $i < $n = count($sub_xpoints) - 1; $i++) {
-		$ways[] = new LineString(array($sub_xpoints[$i], $sub_xpoints[$i+1]));
+		$way = new LineString(array($sub_xpoints[$i], $sub_xpoints[$i+1]));
+		$ways[] = $way->asText();
 	}
-	$ways[] = new LineString(array($sub_xpoints[$n], $endPoint));
+	$way = new LineString(array($sub_xpoints[$n], $endPoint));
+	$ways[] = $way->asText();
 		
 }
 
 //print_r($ways);
 
-/*
+echo "ways count: ".count($ways)."\n";
 $db = DB::getDB();
 $db->query("truncate table Rozdzielcza_test_bzyk_ways");
 $db->query("truncate table Rozdzielcza_test_bzyk_joins");
 
 
 foreach ($ways as $way) {
-	$query = "insert into Rozdzielcza_test_bzyk_ways (the_geom) values (linefromtext('".$way->asText()."'))";
+	$query = "insert into Rozdzielcza_test_bzyk_ways (the_geom) values (linefromtext('".$way."'))";
 	$db->query($query);
+	//echo $query."\n";
 }
 
-foreach ($xpoints as $xpoint) {
-	$xpoint2 = Vendor_Geophp::load($xpoint, 'wkt');
-	$query = "insert into Rozdzielcza_test_bzyk_joins (the_geom) values (pointfromtext('".$xpoint2->asText()."'))";
+foreach ($joins as $join) {
+	$query = "insert into Rozdzielcza_test_bzyk_joins (the_geom) values (pointfromtext('".$join."'))";
 	$db->query($query);
 }
-*/
+